tbb-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 19495 discussions
[tor-browser/tor-browser-78.9.0esr-10.5-1] TB3: Tor Browser's official .mozconfigs.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 12b5f9bd23e5870d62aa43410b2c4a42c9e200b6
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon May 6 15:51:06 2013 -0700
TB3: Tor Browser's official .mozconfigs.
Also:
Bug #9829.1: new .mozconfig file for the new cross-compiler and ESR24
Changes needed to build Mac in 64bit
Bug 10715: Enable Webgl for mingw-w64 again.
Disable ICU when cross-compiling; clean-up.
Bug 15773: Enable ICU on OS X
Bug 15990: Don't build the sandbox with mingw-w64
Bug 12761: Switch to ESR 38 for OS X
Updating .mozconfig-asan
Bug 12516: Compile hardenend Tor Browser with -fwrapv
Bug 18331: Switch to Mozilla's toolchain for building Tor Browser for OS X
Bug 17858: Cannot create incremental MARs for hardened builds.
Define HOST_CFLAGS, etc. to avoid compiling programs such as mbsdiff
(which is part of mar-tools and is not distributed to end-users) with
ASan.
Bug 13419: Add back ICU for Windows
Bug 21239: Use GTK2 for ESR52 Linux builds
Bug 23025: Add hardening flags for macOS
Bug 24478: Enable debug assertions and tests in our ASan builds
--enable-proxy-bypass-protection
Bug 27597: ASan build option in tor-browser-build is broken
Bug 27623 - Export MOZILLA_OFFICIAL during desktop builds
This fixes a problem where some preferences had the wrong default value.
Also see bug 27472 where we made a similar fix for Android.
Bug 30463: Explicitly disable MOZ_TELEMETRY_REPORTING
Bug 31450: Set proper BINDGEN_CFLAGS for ASan builds
Add an --enable-tor-browser-data-outside-app-dir configure option
Add --with-tor-browser-version configure option
Bug 21849: Don't allow SSL key logging.
Bug 31457: disable per-installation profiles
The dedicated profiles (per-installation) feature does not interact
well with our bundled profiles on Linux and Windows, and it also causes
multiple profiles to be created on macOS under TorBrowser-Data.
Bug 31935: Disable profile downgrade protection.
Since Tor Browser does not support more than one profile, disable
the prompt and associated code that offers to create one when a
version downgrade situation is detected.
Bug 32493: Disable MOZ_SERVICES_HEALTHREPORT
Bug 25741 - TBA: Disable features at compile-time
MOZ_NATIVE_DEVICES for casting and the media player
MOZ_TELEMETRY_REPORTING for telemetry
MOZ_DATA_REPORTING for all data reporting preferences (crashreport, telemetry, geo)
Bug 25741 - TBA: Add default configure options in dedicated file
Define MOZ_ANDROID_NETWORK_STATE and MOZ_ANDROID_LOCATION
Bug 29859: Disable HLS support for now
Add --disable-tor-launcher build option
Add --enable-tor-browser-update build option
Bug 33734: Set MOZ_NORMANDY to False
Bug 33851: Omit Parental Controls.
Bug 40061: Omit the Windows default browser agent from the build
Bug 40107: Adapt .mozconfig-asan for ESR 78
Bug 40252: Add --enable-rust-simd to our tor-browser mozconfig files
---
.mozconfig | 39 ++++++++++++++++++++++++
.mozconfig-android | 36 ++++++++++++++++++++++
.mozconfig-asan | 45 ++++++++++++++++++++++++++++
.mozconfig-mac | 56 +++++++++++++++++++++++++++++++++++
.mozconfig-mingw | 31 +++++++++++++++++++
browser/base/moz.build | 3 ++
browser/installer/Makefile.in | 8 +++++
browser/moz.configure | 8 ++---
build/moz.configure/old.configure | 6 ++++
mobile/android/confvars.sh | 9 ++++++
mobile/android/geckoview/build.gradle | 1 +
mobile/android/moz.configure | 17 +++++++++--
mobile/android/torbrowser.configure | 30 +++++++++++++++++++
old-configure.in | 49 ++++++++++++++++++++++++++++++
security/moz.build | 2 +-
security/nss/lib/ssl/Makefile | 2 +-
toolkit/modules/AppConstants.jsm | 9 ++++++
toolkit/modules/moz.build | 3 ++
18 files changed, 346 insertions(+), 8 deletions(-)
diff --git a/.mozconfig b/.mozconfig
new file mode 100755
index 000000000000..18cd1f9b6487
--- /dev/null
+++ b/.mozconfig
@@ -0,0 +1,39 @@
+. $topsrcdir/browser/config/mozconfig
+
+# This mozconfig file is not used in official Tor Browser builds.
+# It is only intended to be used when doing incremental Linux builds
+# during development. The platform-specific mozconfig configuration
+# files used in official Tor Browser releases can be found in the
+# tor-browser-build repo:
+# https://gitweb.torproject.org/builders/tor-browser-build.git/
+# under:
+# tor-browser-build/projects/firefox/mozconfig-$OS-$ARCH
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Let's support GTK3 for ESR60
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+ac_add_options --disable-tor-launcher
+ac_add_options --with-tor-browser-version=dev-build
+ac_add_options --disable-tor-browser-update
diff --git a/.mozconfig-android b/.mozconfig-android
new file mode 100755
index 000000000000..50015ec615ef
--- /dev/null
+++ b/.mozconfig-android
@@ -0,0 +1,36 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm-linux-androideabi
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Android
+ac_add_options --enable-application=mobile/android
+ac_add_options --target=arm-linux-androideabi
+ac_add_options --with-android-ndk="$NDK_BASE" #Enter the android ndk location(ndk r17b)
+ac_add_options --with-android-sdk="$SDK_BASE" #Enter the android sdk location
+ac_add_options --with-branding=mobile/android/branding/alpha
+
+# Use Mozilla's Clang blobs
+CC="$HOME/.mozbuild/clang/bin/clang"
+CXX="$HOME/.mozbuild/clang/bin/clang++"
+
+#enable ccache to set amount of cache assigned for build.
+ac_add_options --with-ccache
+
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-rust-debug
+
+ac_add_options --disable-updater
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-asan b/.mozconfig-asan
new file mode 100644
index 000000000000..98ea6ac6f3fe
--- /dev/null
+++ b/.mozconfig-asan
@@ -0,0 +1,45 @@
+. $topsrcdir/browser/config/mozconfig
+
+export CFLAGS="-fsanitize=address -Dxmalloc=myxmalloc"
+export CXXFLAGS="-fsanitize=address -Dxmalloc=myxmalloc"
+# We need to add -ldl explicitely due to bug 1213698
+export LDFLAGS="-fsanitize=address -ldl"
+
+# Define HOST_CFLAGS, etc. to avoid compiling programs such as mbsdiff
+# (which is part of mar-tools and is not distributed to end-users) with
+# ASan. See bug 17858.
+export HOST_CFLAGS=""
+export HOST_CXXFLAGS=""
+export HOST_LDFLAGS="-ldl"
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+export BINDGEN_CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc'
+
+ac_add_options --enable-address-sanitizer
+ac_add_options --disable-jemalloc
+ac_add_options --disable-elf-hack
+ac_add_options --with-clang-path=/var/tmp/dist/clang/bin/clang
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Let's support GTK3 for ESR60
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+ac_add_options --enable-tor-browser-update
+
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-mac b/.mozconfig-mac
new file mode 100644
index 000000000000..26e2b6b92fdb
--- /dev/null
+++ b/.mozconfig-mac
@@ -0,0 +1,56 @@
+# ld needs libLTO.so from llvm
+mk_add_options "export LD_LIBRARY_PATH=$topsrcdir/clang/lib"
+
+CROSS_CCTOOLS_PATH=$topsrcdir/cctools
+CROSS_SYSROOT=$topsrcdir/MacOSX10.7.sdk
+CROSS_PRIVATE_FRAMEWORKS=$CROSS_SYSROOT/System/Library/PrivateFrameworks
+HARDENING_FLAGS="-Werror=format -Werror=format-security -fstack-protector-strong -D_FORTIFY_SOURCE=2"
+FLAGS="-target x86_64-apple-darwin10 -mlinker-version=136 -B $CROSS_CCTOOLS_PATH/bin -isysroot $CROSS_SYSROOT $HARDENING_FLAGS"
+
+export CC="$topsrcdir/clang/bin/clang $FLAGS"
+export CXX="$topsrcdir/clang/bin/clang++ $FLAGS"
+export CPP="$topsrcdir/clang/bin/clang $FLAGS -E"
+export LLVMCONFIG=$topsrcdir/clang/bin/llvm-config
+export LDFLAGS="-Wl,-syslibroot,$CROSS_SYSROOT -Wl,-dead_strip -Wl,-pie"
+export TOOLCHAIN_PREFIX=$CROSS_CCTOOLS_PATH/bin/x86_64-apple-darwin10-
+#TODO: bug 1184202 - would be nice if these could be detected with TOOLCHAIN_PREFIX automatically
+export AR=${TOOLCHAIN_PREFIX}ar
+export RANLIB=${TOOLCHAIN_PREFIX}ranlib
+export STRIP=${TOOLCHAIN_PREFIX}strip
+export OTOOL=${TOOLCHAIN_PREFIX}otool
+export DSYMUTIL=$topsrcdir/clang/bin/llvm-dsymutil
+
+export HOST_CC="$topsrcdir/clang/bin/clang"
+export HOST_CXX="$topsrcdir/clang/bin/clang++"
+export HOST_CPP="$topsrcdir/clang/bin/clang -E"
+export HOST_CFLAGS="-g"
+export HOST_CXXFLAGS="-g"
+export HOST_LDFLAGS="-g"
+
+ac_add_options --target=x86_64-apple-darwin
+ac_add_options --with-macos-private-frameworks=$CROSS_PRIVATE_FRAMEWORKS
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-macos
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-application=browser
+ac_add_options --enable-strip
+ac_add_options --enable-official-branding
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --disable-debug
+
+ac_add_options --enable-tor-browser-data-outside-app-dir
+ac_add_options --enable-tor-browser-update
+
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-tests
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
new file mode 100644
index 000000000000..3ec6ff18a3e9
--- /dev/null
+++ b/.mozconfig-mingw
@@ -0,0 +1,31 @@
+CROSS_COMPILE=1
+
+ac_add_options --enable-application=browser
+ac_add_options --target=i686-w64-mingw32
+ac_add_options --with-toolchain-prefix=i686-w64-mingw32-
+ac_add_options --enable-default-toolkit=cairo-windows
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-mingw
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-strip
+ac_add_options --enable-official-branding
+
+ac_add_options --enable-tor-browser-update
+ac_add_options --disable-bits-download
+
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --disable-crashreporter
+ac_add_options --disable-maintenance-service
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-tests
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+ac_add_options --disable-default-browser-agent
diff --git a/browser/base/moz.build b/browser/base/moz.build
index e136e0986a3c..ebb4cbf79fd0 100644
--- a/browser/base/moz.build
+++ b/browser/base/moz.build
@@ -71,4 +71,7 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk', 'cocoa'):
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk'):
DEFINES['MENUBAR_CAN_AUTOHIDE'] = 1
+if CONFIG['TOR_BROWSER_UPDATE']:
+ DEFINES['TOR_BROWSER_UPDATE'] = 1
+
JAR_MANIFESTS += ['jar.mn']
diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in
index b861ad214a64..0325f0ffab9a 100644
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -82,6 +82,14 @@ endif
endif
endif
+ifdef TOR_BROWSER_DISABLE_TOR_LAUNCHER
+DEFINES += -DTOR_BROWSER_DISABLE_TOR_LAUNCHER
+endif
+
+ifdef TOR_BROWSER_UPDATE
+DEFINES += -DTOR_BROWSER_UPDATE
+endif
+
ifneq (,$(filter WINNT Darwin Android,$(OS_TARGET)))
DEFINES += -DMOZ_SHARED_MOZGLUE=1
endif
diff --git a/browser/moz.configure b/browser/moz.configure
index a251050feb9b..3b6b377235ca 100644
--- a/browser/moz.configure
+++ b/browser/moz.configure
@@ -5,11 +5,11 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
imply_option('MOZ_PLACES', True)
-imply_option('MOZ_SERVICES_HEALTHREPORT', True)
+imply_option('MOZ_SERVICES_HEALTHREPORT', False)
imply_option('MOZ_SERVICES_SYNC', True)
-imply_option('MOZ_DEDICATED_PROFILES', True)
-imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', True)
-imply_option('MOZ_NORMANDY', True)
+imply_option('MOZ_DEDICATED_PROFILES', False)
+imply_option('MOZ_BLOCK_PROFILE_DOWNGRADE', False)
+imply_option('MOZ_NORMANDY', False)
with only_when(target_is_linux & compile_environment):
option(env='MOZ_NO_PIE_COMPAT',
diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
index 136abbcafa69..9b663a1bf4f1 100644
--- a/build/moz.configure/old.configure
+++ b/build/moz.configure/old.configure
@@ -248,6 +248,12 @@ def old_configure_options(*options):
'--with-user-appdir',
'--x-includes',
'--x-libraries',
+
+ # Tor additions.
+ '--with-tor-browser-version',
+ '--enable-tor-browser-update',
+ '--enable-tor-browser-data-outside-app-dir',
+ '--enable-tor-launcher',
)
def prepare_configure_options(host, target, all_options, *options):
# old-configure only supports the options listed in @old_configure_options
diff --git a/mobile/android/confvars.sh b/mobile/android/confvars.sh
index 77191834d240..47a6a8dbae1d 100644
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -30,9 +30,18 @@ MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
MOZ_NO_SMART_CARDS=1
+# Adds MIME-type support for raw video
MOZ_RAW=1
# use custom widget for html:select
MOZ_USE_NATIVE_POPUP_WINDOWS=1
MOZ_APP_ID={aa3c5121-dab2-40e2-81ca-7ea25febc110}
+
+### Tor Browser for Android ###
+
+# Disable telemetry at compile-time
+unset MOZ_TELEMETRY_REPORTING
+
+# Disable data reporting at compile-time
+unset MOZ_DATA_REPORTING
diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle
index 82d36c179c92..c1b51537031d 100644
--- a/mobile/android/geckoview/build.gradle
+++ b/mobile/android/geckoview/build.gradle
@@ -92,6 +92,7 @@ android {
buildConfigField 'String', "MOZ_APP_DISPLAYNAME", "\"${mozconfig.substs.MOZ_APP_DISPLAYNAME}\"";
buildConfigField 'String', "MOZ_APP_UA_NAME", "\"${mozconfig.substs.MOZ_APP_UA_NAME}\"";
buildConfigField 'String', "MOZ_UPDATE_CHANNEL", "\"${mozconfig.substs.MOZ_UPDATE_CHANNEL}\"";
+ buildConfigField 'String', "TOR_BROWSER_VERSION", "\"${mozconfig.substs.TOR_BROWSER_VERSION}\"";
// MOZILLA_VERSION is oddly quoted from autoconf, but we don't have to handle it specially in Gradle.
buildConfigField 'String', "MOZILLA_VERSION", "\"${mozconfig.substs.MOZILLA_VERSION}\"";
diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure
index fa510f0a57d3..f7b4df4ac24a 100644
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -10,7 +10,7 @@ project_flag('MOZ_ANDROID_EXCLUDE_FONTS',
project_flag('MOZ_ANDROID_HLS_SUPPORT',
help='Enable HLS (HTTP Live Streaming) support (currently using the ExoPlayer library)',
- default=True)
+ default=False)
option(env='FENNEC_NIGHTLY',
help='Enable experimental code for Fennec Nightly users. NOTE: This is *not* equivalent '
@@ -26,9 +26,12 @@ def fennec_nightly(nightly):
return bool(nightly)
imply_option('MOZ_NORMANDY', False)
-imply_option('MOZ_SERVICES_HEALTHREPORT', True)
imply_option('MOZ_ANDROID_HISTORY', True)
imply_option('--enable-small-chunk-size', True)
+# Comment this so we can imply |False| in torbrowser.configure
+# The Build system doesn't allow multiple imply_option()
+# calls with the same key.
+#imply_option('MOZ_SERVICES_HEALTHREPORT', True)
@depends(target)
def check_target(target):
@@ -39,6 +42,8 @@ def check_target(target):
'Build_Instructions/Simple_Firefox_for_Android_build '
'for more information about the necessary options.')
+include('torbrowser.configure')
+
include('../../toolkit/moz.configure')
include('../../build/moz.configure/android-sdk.configure')
include('../../build/moz.configure/java.configure')
@@ -50,3 +55,11 @@ option(env='MOZ_ANDROID_FAT_AAR_ARCHITECTURES',
help='Comma-separated list of Android CPU architectures like "armeabi-v7a,arm64-v8a,x86,x86_64"')
set_config('MOZ_ANDROID_FAT_AAR_ARCHITECTURES', depends('MOZ_ANDROID_FAT_AAR_ARCHITECTURES')(lambda x: x))
+
+project_flag('MOZ_ANDROID_NETWORK_STATE',
+ help='Include permission for accessing WiFi/network state on Android',
+ default=False)
+
+project_flag('MOZ_ANDROID_LOCATION',
+ help='Include permission for accessing fine and course-grain Location on Android',
+ default=False)
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
new file mode 100644
index 000000000000..2ff6215eedc9
--- /dev/null
+++ b/mobile/android/torbrowser.configure
@@ -0,0 +1,30 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Set Tor Browser default config
+
+imply_option('MOZ_ANDROID_EXCLUDE_FONTS', False)
+
+# Disable uploading crash reports and dump files to an external server
+# This is still configured in old-configure. Uncomment when this moves
+# to the python config
+#imply_option('MOZ_CRASHREPORTER', False)
+
+# Disable uploading information about the browser configuration and
+# performance to an external server
+imply_option('MOZ_SERVICES_HEALTHREPORT', False)
+
+# Disable creating telemetry and data reports that are uploaded to an
+# external server
+# These aren't actually configure options. These are disabled in
+# confvars.sh, but they look like configure options so we'll document
+# them here, as well.
+#XXX: no confvars.sh here
+#imply_option('MOZ_TELEMETRY_REPORTING', False)
+#imply_option('MOZ_DATA_REPORTING', False)
+
+imply_option('MOZ_ANDROID_NETWORK_STATE', False);
+imply_option('MOZ_ANDROID_LOCATION', False);
diff --git a/old-configure.in b/old-configure.in
index dfb072b19cfb..2c3308a27657 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -1966,6 +1966,55 @@ if test -n "$MOZ_UPDATER"; then
AC_DEFINE(MOZ_UPDATER)
fi
+dnl ========================================================
+dnl Tor additions
+dnl ========================================================
+MOZ_ARG_WITH_STRING(tor-browser-version,
+[ --with-tor-browser-version=VERSION
+ Set Tor Browser version, e.g., 7.0a1],
+ TOR_BROWSER_VERSION="$withval")
+
+if test -z "$TOR_BROWSER_VERSION"; then
+ AC_MSG_ERROR([--with-tor-browser-version is required for Tor Browser.])
+fi
+
+MOZ_ARG_ENABLE_BOOL(tor-browser-update,
+[ --enable-tor-browser-update
+ Enable Tor Browser update],
+ TOR_BROWSER_UPDATE=1,
+ TOR_BROWSER_UPDATE= )
+
+if test -n "$TOR_BROWSER_UPDATE"; then
+ AC_DEFINE(TOR_BROWSER_UPDATE)
+fi
+
+MOZ_ARG_ENABLE_BOOL(tor-browser-data-outside-app-dir,
+[ --enable-tor-browser-data-outside-app-dir
+ Enable Tor Browser data outside of app directory],
+ TOR_BROWSER_DATA_OUTSIDE_APP_DIR=1,
+ TOR_BROWSER_DATA_OUTSIDE_APP_DIR= )
+
+if test -n "$TOR_BROWSER_DATA_OUTSIDE_APP_DIR"; then
+ AC_DEFINE(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+fi
+
+AC_DEFINE_UNQUOTED(TOR_BROWSER_VERSION,$TOR_BROWSER_VERSION)
+AC_DEFINE_UNQUOTED(TOR_BROWSER_VERSION_QUOTED,"$TOR_BROWSER_VERSION")
+AC_SUBST(TOR_BROWSER_UPDATE)
+AC_SUBST(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+
+MOZ_ARG_DISABLE_BOOL(tor-launcher,
+[ --disable-tor-launcher
+ Do not include Tor Launcher],
+ TOR_BROWSER_DISABLE_TOR_LAUNCHER=1,
+ TOR_BROWSER_DISABLE_TOR_LAUNCHER=)
+
+if test -n "$TOR_BROWSER_DISABLE_TOR_LAUNCHER"; then
+ AC_DEFINE(TOR_BROWSER_DISABLE_TOR_LAUNCHER)
+fi
+
+AC_SUBST(TOR_BROWSER_DISABLE_TOR_LAUNCHER)
+
dnl ========================================================
dnl parental controls (for Windows Vista)
dnl ========================================================
diff --git a/security/moz.build b/security/moz.build
index dec6f3ef7e21..f00f9fe5d7a7 100644
--- a/security/moz.build
+++ b/security/moz.build
@@ -85,7 +85,7 @@ gyp_vars['nss_dist_obj_dir'] = '$PRODUCT_DIR/dist/bin'
gyp_vars['disable_tests'] = 1
gyp_vars['disable_dbm'] = 1
gyp_vars['disable_libpkix'] = 1
-gyp_vars['enable_sslkeylogfile'] = 1
+gyp_vars['enable_sslkeylogfile'] = 0
# pkg-config won't reliably find zlib on our builders, so just force it.
# System zlib is only used for modutil and signtool unless
# SSL zlib is enabled, which we are disabling immediately below this.
diff --git a/security/nss/lib/ssl/Makefile b/security/nss/lib/ssl/Makefile
index 8a8b06f4b508..90571bb3e256 100644
--- a/security/nss/lib/ssl/Makefile
+++ b/security/nss/lib/ssl/Makefile
@@ -41,7 +41,7 @@ endif
# Enable key logging by default in debug builds, but not opt builds.
# Logging still needs to be enabled at runtime through env vars.
-NSS_ALLOW_SSLKEYLOGFILE ?= $(if $(BUILD_OPT),0,1)
+NSS_ALLOW_SSLKEYLOGFILE ?= 0
ifeq (1,$(NSS_ALLOW_SSLKEYLOGFILE))
DEFINES += -DNSS_ALLOW_SSLKEYLOGFILE=1
endif
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index 9b035435aed6..cd8ca2659626 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -341,6 +341,8 @@ this.AppConstants = Object.freeze({
MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
+ TOR_BROWSER_VERSION: "@TOR_BROWSER_VERSION@",
+
DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
@@ -418,4 +420,11 @@ this.AppConstants = Object.freeze({
#else
false,
#endif
+
+ TOR_BROWSER_UPDATE:
+#ifdef TOR_BROWSER_UPDATE
+ true,
+#else
+ false,
+#endif
});
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
index e5858122fa1c..f000f35c126f 100644
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -296,6 +296,9 @@ for var in ('MOZ_ALLOW_ADDON_SIDELOAD',
if CONFIG[var]:
DEFINES[var] = True
+if CONFIG['TOR_BROWSER_UPDATE']:
+ DEFINES['TOR_BROWSER_UPDATE'] = 1
+
JAR_MANIFESTS += ['jar.mn']
DEFINES['TOPOBJDIR'] = TOPOBJDIR
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 1642404 - add an option to show that an update is being downloaded r=bytesized, fluent-reviewers, flod
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 3b009b05e782daef6afa06593c1b1b0255aa1831
Author: Mark Smith <mcs(a)pearlcrescent.com>
Date: Mon Jun 22 20:24:46 2020 +0000
Bug 1642404 - add an option to show that an update is being downloaded r=bytesized,fluent-reviewers,flod
Add support for a hidden preference named app.update.notifyDuringDownload
that, when set to true, causes a "Downloading update" message to appear
in the app menu during a MAR download. Clicking the message opens the
about box so the user can see detailed progress information.
Differential Revision: https://phabricator.services.mozilla.com/D77688
---
browser/app/profile/firefox.js | 4 ++
browser/components/BrowserGlue.jsm | 1 +
.../customizableui/content/panelUI.inc.xhtml | 2 +
.../components/customizableui/content/panelUI.js | 5 ++
.../test/browser_panelUINotifications.js | 62 ++++++++++++++++++++++
browser/locales/en-US/browser/appmenu.ftl | 2 +
.../themes/shared/customizableui/panelUI.inc.css | 3 ++
browser/themes/shared/notification-icons.inc.css | 1 +
browser/themes/shared/toolbarbutton-icons.inc.css | 1 +
toolkit/mozapps/update/UpdateListener.jsm | 50 +++++++++++------
toolkit/mozapps/update/UpdateService.jsm | 27 ++++++++++
.../mozapps/update/tests/browser/browser.bits.ini | 1 +
toolkit/mozapps/update/tests/browser/browser.ini | 1 +
.../update/tests/browser/browser.legacy.bits.ini | 1 +
.../update/tests/browser/browser.legacy.ini | 1 +
.../browser/browser_aboutDialog_bc_downloading.js | 17 ++++++
.../browser_aboutDialog_bc_downloading_notify.js | 58 ++++++++++++++++++++
toolkit/mozapps/update/tests/data/shared.js | 1 +
18 files changed, 222 insertions(+), 16 deletions(-)
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index ab9d2cdc5bcc..efee4f15c986 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -131,6 +131,10 @@ pref("app.update.download.promptMaxAttempts", 2);
// download a fresh installer.
pref("app.update.elevation.promptMaxAttempts", 2);
+// If set to true, a message will be displayed in the hamburger menu while
+// an update is being downloaded.
+pref("app.update.notifyDuringDownload", false);
+
// If set to true, the Update Service will automatically download updates if the
// user can apply updates. This pref is no longer used on Windows, except as the
// default value to migrate to the new location that this data is now stored
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 70f5ad8b85e4..0a3555f26432 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -769,6 +769,7 @@ const global = this;
const listeners = {
observers: {
+ "update-downloading": ["UpdateListener"],
"update-staged": ["UpdateListener"],
"update-downloaded": ["UpdateListener"],
"update-available": ["UpdateListener"],
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
index e5c9c00c35e4..3a8b74b0a9f3 100644
--- a/browser/components/customizableui/content/panelUI.inc.xhtml
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml
@@ -223,6 +223,8 @@
<vbox class="panel-subview-body">
<vbox id="appMenu-addon-banners"/>
<toolbarbutton id="appMenu-update-banner" class="panel-banner-item"
+ data-l10n-id="appmenuitem-update-banner"
+ data-l10n-attrs="label-update-downloading"
label-update-available="&updateAvailable.panelUI.label;"
label-update-manual="&updateManual.panelUI.label;"
label-update-unsupported="&updateUnsupported.panelUI.label;"
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
index 1f6ed5caf839..a81be30f3ec7 100644
--- a/browser/components/customizableui/content/panelUI.js
+++ b/browser/components/customizableui/content/panelUI.js
@@ -65,6 +65,7 @@ const PanelUI = {
Services.obs.addObserver(this, "fullscreen-nav-toolbox");
Services.obs.addObserver(this, "appMenu-notifications");
+ Services.obs.addObserver(this, "show-update-progress");
XPCOMUtils.defineLazyPreferenceGetter(
this,
@@ -182,6 +183,7 @@ const PanelUI = {
Services.obs.removeObserver(this, "fullscreen-nav-toolbox");
Services.obs.removeObserver(this, "appMenu-notifications");
+ Services.obs.removeObserver(this, "show-update-progress");
window.removeEventListener("MozDOMFullscreen:Entered", this);
window.removeEventListener("MozDOMFullscreen:Exited", this);
@@ -271,6 +273,9 @@ const PanelUI = {
this._notifications = AppMenuNotifications.notifications;
this._updateNotifications(true);
break;
+ case "show-update-progress":
+ openAboutDialog();
+ break;
}
},
diff --git a/browser/components/customizableui/test/browser_panelUINotifications.js b/browser/components/customizableui/test/browser_panelUINotifications.js
index 39ae5435c453..cab471bc946f 100644
--- a/browser/components/customizableui/test/browser_panelUINotifications.js
+++ b/browser/components/customizableui/test/browser_panelUINotifications.js
@@ -156,6 +156,68 @@ add_task(async function testSecondaryActionWorkflow() {
});
});
+/**
+ * This tests that the PanelUI update downloading badge and banner
+ * notification are correctly displayed and that clicking the banner
+ * item calls the main action.
+ */
+add_task(async function testDownloadingBadge() {
+ let options = {
+ gBrowser: window.gBrowser,
+ url: "about:blank",
+ };
+
+ await BrowserTestUtils.withNewTab(options, async function(browser) {
+ let mainActionCalled = false;
+ let mainAction = {
+ callback: () => {
+ mainActionCalled = true;
+ },
+ };
+ // The downloading notification is always displayed in a dismissed state.
+ AppMenuNotifications.showNotification(
+ "update-downloading",
+ mainAction,
+ undefined,
+ { dismissed: true }
+ );
+ is(PanelUI.notificationPanel.state, "closed", "doorhanger is closed.");
+
+ is(
+ PanelUI.menuButton.getAttribute("badge-status"),
+ "update-downloading",
+ "Downloading badge is displaying on PanelUI button."
+ );
+
+ await gCUITestUtils.openMainMenu();
+ isnot(
+ PanelUI.menuButton.getAttribute("badge-status"),
+ "update-downloading",
+ "Downloading badge is hidden on PanelUI button."
+ );
+ let menuItem = PanelUI.mainView.querySelector(".panel-banner-item");
+ is(
+ menuItem.label,
+ menuItem.getAttribute("label-update-downloading"),
+ "Showing correct label (downloading)"
+ );
+ is(menuItem.hidden, false, "update-downloading menu item is showing.");
+
+ await gCUITestUtils.hideMainMenu();
+ is(
+ PanelUI.menuButton.getAttribute("badge-status"),
+ "update-downloading",
+ "Downloading badge is shown on PanelUI button."
+ );
+
+ await gCUITestUtils.openMainMenu();
+ menuItem.click();
+ ok(mainActionCalled, "Main action callback was called");
+
+ AppMenuNotifications.removeNotification(/.*/);
+ });
+});
+
/**
* We want to ensure a few things with this:
* - Adding a doorhanger will make a badge disappear
diff --git a/browser/locales/en-US/browser/appmenu.ftl b/browser/locales/en-US/browser/appmenu.ftl
index 12fd2bec3e6a..3026b2597287 100644
--- a/browser/locales/en-US/browser/appmenu.ftl
+++ b/browser/locales/en-US/browser/appmenu.ftl
@@ -4,6 +4,8 @@
## App Menu
+appmenuitem-update-banner =
+ .label-update-downloading = Downloading { -brand-shorter-name } update
appmenuitem-protection-dashboard-title = Protections Dashboard
appmenuitem-customize-mode =
.label = Customize…
diff --git a/browser/themes/shared/customizableui/panelUI.inc.css b/browser/themes/shared/customizableui/panelUI.inc.css
index 8a24f03c0ad6..c991daee0759 100644
--- a/browser/themes/shared/customizableui/panelUI.inc.css
+++ b/browser/themes/shared/customizableui/panelUI.inc.css
@@ -67,6 +67,7 @@
}
#PanelUI-menu-button[badge-status="update-available"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
+#PanelUI-menu-button[badge-status="update-downloading"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-unsupported"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
@@ -80,6 +81,7 @@
}
#PanelUI-menu-button[badge-status="update-available"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
+#PanelUI-menu-button[badge-status="update-downloading"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
background: #74BF43 url(chrome://browser/skin/update-badge.svg) no-repeat center;
@@ -90,6 +92,7 @@
}
.panel-banner-item[notificationid="update-available"]::after,
+.panel-banner-item[notificationid="update-downloading"]::after,
.panel-banner-item[notificationid="update-manual"]::after,
.panel-banner-item[notificationid="update-restart"]::after {
background: #74BF43 url(chrome://browser/skin/update-badge.svg) no-repeat center;
diff --git a/browser/themes/shared/notification-icons.inc.css b/browser/themes/shared/notification-icons.inc.css
index 74d861200f45..f17ddae9dc79 100644
--- a/browser/themes/shared/notification-icons.inc.css
+++ b/browser/themes/shared/notification-icons.inc.css
@@ -401,6 +401,7 @@ html|*#webRTC-previewVideo {
/* UPDATE */
.popup-notification-icon[popupid="update-available"],
+.popup-notification-icon[popupid="update-downloading"],
.popup-notification-icon[popupid="update-manual"],
.popup-notification-icon[popupid="update-restart"] {
background: #74BF43 url(chrome://browser/skin/notification-icons/update.svg) no-repeat center;
diff --git a/browser/themes/shared/toolbarbutton-icons.inc.css b/browser/themes/shared/toolbarbutton-icons.inc.css
index 998537e1f57d..9514eb1d5338 100644
--- a/browser/themes/shared/toolbarbutton-icons.inc.css
+++ b/browser/themes/shared/toolbarbutton-icons.inc.css
@@ -290,6 +290,7 @@ toolbar[brighttext] {
}
#PanelUI-menu-button[badge-status="update-available"],
+#PanelUI-menu-button[badge-status="update-downloading"],
#PanelUI-menu-button[badge-status="update-manual"],
#PanelUI-menu-button[badge-status="update-restart"] {
list-style-image: url("chrome://browser/skin/menu-badged.svg");
diff --git a/toolkit/mozapps/update/UpdateListener.jsm b/toolkit/mozapps/update/UpdateListener.jsm
index 17919e914b11..110640628771 100644
--- a/toolkit/mozapps/update/UpdateListener.jsm
+++ b/toolkit/mozapps/update/UpdateListener.jsm
@@ -113,16 +113,18 @@ var UpdateListener = {
mainAction,
beforeShowDoorhanger
) {
+ const addTelemetry = id => {
+ // No telemetry for the "downloading" state.
+ if (type !== "downloading") {
+ Services.telemetry.getHistogramById(id).add(type);
+ }
+ };
let action = {
callback(win, fromDoorhanger) {
if (fromDoorhanger) {
- Services.telemetry
- .getHistogramById("UPDATE_NOTIFICATION_MAIN_ACTION_DOORHANGER")
- .add(type);
+ addTelemetry("UPDATE_NOTIFICATION_MAIN_ACTION_DOORHANGER");
} else {
- Services.telemetry
- .getHistogramById("UPDATE_NOTIFICATION_MAIN_ACTION_MENU")
- .add(type);
+ addTelemetry("UPDATE_NOTIFICATION_MAIN_ACTION_MENU");
}
mainAction(win);
},
@@ -131,13 +133,10 @@ var UpdateListener = {
let secondaryAction = {
callback() {
- Services.telemetry
- .getHistogramById("UPDATE_NOTIFICATION_DISMISSED")
- .add(type);
+ addTelemetry("UPDATE_NOTIFICATION_DISMISSED");
},
dismiss: true,
};
-
AppMenuNotifications.showNotification(
"update-" + type,
action,
@@ -145,13 +144,9 @@ var UpdateListener = {
{ dismissed, beforeShowDoorhanger }
);
if (dismissed) {
- Services.telemetry
- .getHistogramById("UPDATE_NOTIFICATION_BADGE_SHOWN")
- .add(type);
+ addTelemetry("UPDATE_NOTIFICATION_BADGE_SHOWN");
} else {
- Services.telemetry
- .getHistogramById("UPDATE_NOTIFICATION_SHOWN")
- .add(type);
+ addTelemetry("UPDATE_NOTIFICATION_SHOWN");
}
},
@@ -205,6 +200,15 @@ var UpdateListener = {
}
},
+ showUpdateDownloadingNotification() {
+ this.showUpdateNotification("downloading", true, true, () => {
+ // The user clicked on the "Downloading update" app menu item.
+ // Code in browser/components/customizableui/content/panelUI.js
+ // receives the following notification and opens the about dialog.
+ Services.obs.notifyObservers(null, "show-update-progress");
+ });
+ },
+
handleUpdateError(update, status) {
switch (status) {
case "download-attempt-failed":
@@ -287,6 +291,17 @@ var UpdateListener = {
}
},
+ handleUpdateDownloading(status) {
+ switch (status) {
+ case "downloading":
+ this.showUpdateDownloadingNotification();
+ break;
+ case "idle":
+ this.reset();
+ break;
+ }
+ },
+
observe(subject, topic, status) {
let update = subject && subject.QueryInterface(Ci.nsIUpdate);
@@ -299,6 +314,9 @@ var UpdateListener = {
}
this.handleUpdateAvailable(update, status);
break;
+ case "update-downloading":
+ this.handleUpdateDownloading(status);
+ break;
case "update-staged":
case "update-downloaded":
// An update check has found an update and downloaded / staged the
diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm
index 0cc26f683078..8dd397f628f5 100644
--- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -59,6 +59,7 @@ const PREF_APP_UPDATE_ELEVATE_ATTEMPTS = "app.update.elevate.attempts";
const PREF_APP_UPDATE_ELEVATE_MAXATTEMPTS = "app.update.elevate.maxAttempts";
const PREF_APP_UPDATE_LOG = "app.update.log";
const PREF_APP_UPDATE_LOG_FILE = "app.update.log.file";
+const PREF_APP_UPDATE_NOTIFYDURINGDOWNLOAD = "app.update.notifyDuringDownload";
const PREF_APP_UPDATE_PROMPTWAITTIME = "app.update.promptWaitTime";
const PREF_APP_UPDATE_SERVICE_ENABLED = "app.update.service.enabled";
const PREF_APP_UPDATE_SERVICE_ERRORS = "app.update.service.errors";
@@ -4446,6 +4447,24 @@ Downloader.prototype = {
return selectedPatch;
},
+ /**
+ * Whether or not the user wants to be notified that an update is being
+ * downloaded.
+ */
+ get _notifyDuringDownload() {
+ return Services.prefs.getBoolPref(
+ PREF_APP_UPDATE_NOTIFYDURINGDOWNLOAD,
+ false
+ );
+ },
+
+ _notifyDownloadStatusObservers: function Downloader_notifyDownloadStatusObservers() {
+ if (this._notifyDuringDownload) {
+ let status = this.updateService.isDownloading ? "downloading" : "idle";
+ Services.obs.notifyObservers(this._update, "update-downloading", status);
+ }
+ },
+
/**
* Whether or not we are currently downloading something.
*/
@@ -4687,6 +4706,9 @@ Downloader.prototype = {
.getService(Ci.nsIUpdateManager)
.saveUpdates();
}
+
+ this._notifyDownloadStatusObservers();
+
return STATE_DOWNLOADING;
},
@@ -5193,6 +5215,11 @@ Downloader.prototype = {
this._request = null;
+ // This notification must happen after _request is set to null so that
+ // the correct this.updateService.isDownloading value is available in
+ // _notifyDownloadStatusObservers().
+ this._notifyDownloadStatusObservers();
+
if (state == STATE_DOWNLOAD_FAILED) {
var allFailed = true;
// If we haven't already, attempt to download without BITS
diff --git a/toolkit/mozapps/update/tests/browser/browser.bits.ini b/toolkit/mozapps/update/tests/browser/browser.bits.ini
index 9355e22550f2..5a44d1e0f6bf 100644
--- a/toolkit/mozapps/update/tests/browser/browser.bits.ini
+++ b/toolkit/mozapps/update/tests/browser/browser.bits.ini
@@ -21,6 +21,7 @@ prefs =
# About Dialog Application Update Tests
[browser_aboutDialog_bc_downloading.js]
[browser_aboutDialog_bc_downloading_staging.js]
+[browser_aboutDialog_bc_downloading_notify.js]
[browser_aboutDialog_bc_downloaded.js]
[browser_aboutDialog_bc_downloaded_staging.js]
[browser_aboutDialog_bc_downloaded_staged.js]
diff --git a/toolkit/mozapps/update/tests/browser/browser.ini b/toolkit/mozapps/update/tests/browser/browser.ini
index 5ce14c9c2633..c4f3fd055bbf 100644
--- a/toolkit/mozapps/update/tests/browser/browser.ini
+++ b/toolkit/mozapps/update/tests/browser/browser.ini
@@ -15,6 +15,7 @@ prefs =
# About Dialog Application Update Tests
[browser_aboutDialog_bc_downloading.js]
[browser_aboutDialog_bc_downloading_staging.js]
+[browser_aboutDialog_bc_downloading_notify.js]
[browser_aboutDialog_bc_downloaded.js]
[browser_aboutDialog_bc_downloaded_staging.js]
[browser_aboutDialog_bc_downloaded_stagingFailure.js]
diff --git a/toolkit/mozapps/update/tests/browser/browser.legacy.bits.ini b/toolkit/mozapps/update/tests/browser/browser.legacy.bits.ini
index 7bf1f706a5b7..555eaea82cd6 100644
--- a/toolkit/mozapps/update/tests/browser/browser.legacy.bits.ini
+++ b/toolkit/mozapps/update/tests/browser/browser.legacy.bits.ini
@@ -20,6 +20,7 @@ prefs =
# About Dialog Application Update Tests
[browser_aboutDialog_bc_downloading.js]
[browser_aboutDialog_bc_downloading_staging.js]
+[browser_aboutDialog_bc_downloading_notify.js]
[browser_aboutDialog_bc_downloaded.js]
[browser_aboutDialog_bc_downloaded_staging.js]
[browser_aboutDialog_bc_downloaded_staged.js]
diff --git a/toolkit/mozapps/update/tests/browser/browser.legacy.ini b/toolkit/mozapps/update/tests/browser/browser.legacy.ini
index 0cf61d64f42e..e3f681f53236 100644
--- a/toolkit/mozapps/update/tests/browser/browser.legacy.ini
+++ b/toolkit/mozapps/update/tests/browser/browser.legacy.ini
@@ -14,6 +14,7 @@ prefs =
# About Dialog Application Update Tests
[browser_aboutDialog_bc_downloading.js]
[browser_aboutDialog_bc_downloading_staging.js]
+[browser_aboutDialog_bc_downloading_notify.js]
[browser_aboutDialog_bc_downloaded.js]
[browser_aboutDialog_bc_downloaded_staging.js]
[browser_aboutDialog_bc_downloaded_stagingFailure.js]
diff --git a/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading.js b/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading.js
index 776d637512ad..67ddd65205da 100644
--- a/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading.js
+++ b/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading.js
@@ -6,6 +6,10 @@
// Test for About Dialog background check for updates
// with the About Dialog opened during downloading.
add_task(async function aboutDialog_backgroundCheck_downloading() {
+ await SpecialPowers.pushPrefEnv({
+ set: [[PREF_APP_UPDATE_NOTIFYDURINGDOWNLOAD, false]],
+ });
+
let downloadInfo = [];
if (Services.prefs.getBoolPref(PREF_APP_UPDATE_BITS_ENABLED)) {
downloadInfo[0] = { patchType: "partial", bitsResult: "0" };
@@ -21,6 +25,17 @@ add_task(async function aboutDialog_backgroundCheck_downloading() {
waitForUpdateState: STATE_DOWNLOADING,
};
await runAboutDialogUpdateTest(params, [
+ async function aboutDialog_downloading() {
+ is(
+ PanelUI.notificationPanel.state,
+ "closed",
+ "The window's doorhanger is closed."
+ );
+ ok(
+ !PanelUI.menuButton.hasAttribute("badge-status"),
+ "The window does not have a badge."
+ );
+ },
{
panelId: "downloading",
checkActiveUpdate: { state: STATE_DOWNLOADING },
@@ -33,4 +48,6 @@ add_task(async function aboutDialog_backgroundCheck_downloading() {
continueFile: null,
},
]);
+
+ await SpecialPowers.popPrefEnv();
});
diff --git a/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading_notify.js b/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading_notify.js
new file mode 100644
index 000000000000..cf427b149a54
--- /dev/null
+++ b/toolkit/mozapps/update/tests/browser/browser_aboutDialog_bc_downloading_notify.js
@@ -0,0 +1,58 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test for About Dialog background check for updates with the
+// "notify during download" feature turned on.
+add_task(async function aboutDialog_backgroundCheck_downloading_notify() {
+ await SpecialPowers.pushPrefEnv({
+ set: [[PREF_APP_UPDATE_NOTIFYDURINGDOWNLOAD, true]],
+ });
+
+ let downloadInfo = [];
+ if (Services.prefs.getBoolPref(PREF_APP_UPDATE_BITS_ENABLED)) {
+ downloadInfo[0] = { patchType: "partial", bitsResult: "0" };
+ } else {
+ downloadInfo[0] = { patchType: "partial", internalResult: "0" };
+ }
+
+ // Since the partial should be successful specify an invalid size for the
+ // complete update.
+ let params = {
+ queryString: "&useSlowDownloadMar=1&invalidCompleteSize=1",
+ backgroundUpdate: true,
+ waitForUpdateState: STATE_DOWNLOADING,
+ };
+ await runAboutDialogUpdateTest(params, [
+ async function aboutDialog_downloading_notification() {
+ is(
+ PanelUI.notificationPanel.state,
+ "closed",
+ "The window's doorhanger is closed."
+ );
+ ok(
+ PanelUI.menuButton.hasAttribute("badge-status"),
+ "The window has a badge."
+ );
+ is(
+ PanelUI.menuButton.getAttribute("badge-status"),
+ "update-downloading",
+ "The downloading badge is showing for the background window"
+ );
+ },
+ {
+ panelId: "downloading",
+ checkActiveUpdate: { state: STATE_DOWNLOADING },
+ continueFile: CONTINUE_DOWNLOAD,
+ downloadInfo,
+ },
+ {
+ panelId: "apply",
+ checkActiveUpdate: { state: STATE_PENDING },
+ continueFile: null,
+ },
+ ]);
+
+ await SpecialPowers.popPrefEnv();
+});
diff --git a/toolkit/mozapps/update/tests/data/shared.js b/toolkit/mozapps/update/tests/data/shared.js
index 51d9de99d7f2..5106aa5fc7a2 100644
--- a/toolkit/mozapps/update/tests/data/shared.js
+++ b/toolkit/mozapps/update/tests/data/shared.js
@@ -40,6 +40,7 @@ const PREF_APP_UPDATE_INTERVAL = "app.update.interval";
const PREF_APP_UPDATE_LASTUPDATETIME =
"app.update.lastUpdateTime.background-update-timer";
const PREF_APP_UPDATE_LOG = "app.update.log";
+const PREF_APP_UPDATE_NOTIFYDURINGDOWNLOAD = "app.update.notifyDuringDownload";
const PREF_APP_UPDATE_PROMPTWAITTIME = "app.update.promptWaitTime";
const PREF_APP_UPDATE_RETRYTIMEOUT = "app.update.socket.retryTimeout";
const PREF_APP_UPDATE_SERVICE_ENABLED = "app.update.service.enabled";
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 12620: TorBrowser regression tests
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 9065c1ae227991f4dd56590bafa43ef5fb4dd8cc
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Aug 27 16:25:00 2014 -0700
Bug 12620: TorBrowser regression tests
Regression tests for Bug #2950: Make Permissions Manager memory-only
Regression tests for TB4: Tor Browser's Firefox preference overrides.
Note: many more functional tests could be made here
Regression tests for #2874: Block Components.interfaces from content
Bug 18923: Add a script to run all Tor Browser specific tests
Regression tests for Bug #16441: Suppress "Reset Tor Browser" prompt.
---
run-tbb-tests | 66 +++++++++++++++++++++++++++++++++++
tbb-tests-ignore.txt | 13 +++++++
tbb-tests/browser.ini | 5 +++
tbb-tests/browser_tor_TB4.js | 35 +++++++++++++++++++
tbb-tests/browser_tor_bug2950.js | 74 ++++++++++++++++++++++++++++++++++++++++
tbb-tests/mochitest.ini | 3 ++
tbb-tests/moz.build | 10 ++++++
tbb-tests/test_tor_bug2874.html | 25 ++++++++++++++
toolkit/toolkit.mozbuild | 3 +-
9 files changed, 233 insertions(+), 1 deletion(-)
diff --git a/run-tbb-tests b/run-tbb-tests
new file mode 100755
index 000000000000..bc09839f9f05
--- /dev/null
+++ b/run-tbb-tests
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+# This script runs all the Mochitest tests that have been added or
+# modified since the last ffxbld commit.
+#
+# It does not currently run XPCShell tests. We should change this if we
+# start using this type or other types of tests.
+#
+# The logs of the tests are stored in the tbb-tests.log file.
+# Ignored tests are listed in the tbb-tests-ignore.txt file.
+#
+# https://trac.torproject.org/projects/tor/ticket/18923
+
+IFS=$'\n'
+
+if [ -n "$USE_TESTS_LIST" ] && [ -f tbb-tests-list.txt ]
+then
+ echo "Using tests list from file tbb-tests-list.txt"
+ tests=($(cat tbb-tests-list.txt))
+else
+ ffxbld_commit=$(git log -500 --format='oneline' | grep "TB3: Tor Browser's official .mozconfigs." \
+ | head -1 | cut -d ' ' -f 1)
+
+ tests=($(git diff --name-status "$ffxbld_commit" HEAD | \
+ grep -e '^[AM].*/test_[^/]\+\.\(html\|xul\)$' \
+ -e '^[AM].*/browser_[^/]\+\.js$' \
+ | sed 's/^[AM]\s\+//'))
+fi
+
+echo 'The following tests will be run:'
+for i in "${!tests[@]}"
+do
+ if [ -z "$USE_TESTS_LIST" ] \
+ && grep -q "^${tests[$i]}$" tbb-tests-ignore.txt
+ then
+ unset "tests[$i]"
+ continue
+ fi
+ echo "- ${tests[$i]}"
+done
+
+if [ -n "$WRITE_TESTS_LIST" ]
+then
+ rm -f tbb-tests-list.txt
+ for i in "${!tests[@]}"
+ do
+ echo "${tests[$i]}" >> tbb-tests-list.txt
+ done
+ exit 0
+fi
+
+rm -f tbb-tests.log
+echo $'\n''Starting tests'
+# We need `security.nocertdb = false` because of #18087. That pref is
+# forced to have the same value as `browser.privatebrowsing.autostart` in
+# torbutton, so we just set `browser.privatebrowsing.autostart=false` here.
+./mach mochitest --log-tbpl tbb-tests.log \
+ --setpref network.file.path_blacklist='' \
+ --setpref extensions.torbutton.use_nontor_proxy=true \
+ --setpref browser.privatebrowsing.autostart=false \
+ "${tests[@]}"
+
+echo "*************************"
+echo "*************************"
+echo "Summary of failed tests:"
+grep --color=never TEST-UNEXPECTED-FAIL tbb-tests.log
diff --git a/tbb-tests-ignore.txt b/tbb-tests-ignore.txt
new file mode 100644
index 000000000000..ee3927a9e7c4
--- /dev/null
+++ b/tbb-tests-ignore.txt
@@ -0,0 +1,13 @@
+browser/extensions/onboarding/test/browser/browser_onboarding_accessibility.js
+browser/extensions/onboarding/test/browser/browser_onboarding_keyboard.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_2.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_3.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_4.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_5.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_click_auto_complete_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_select_default_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_skip_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_tours.js
+browser/extensions/onboarding/test/browser/browser_onboarding_tourset.js
+browser/extensions/onboarding/test/browser/browser_onboarding_uitour.js
diff --git a/tbb-tests/browser.ini b/tbb-tests/browser.ini
new file mode 100644
index 000000000000..f481660f1417
--- /dev/null
+++ b/tbb-tests/browser.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[browser_tor_bug2950.js]
+[browser_tor_omnibox.js]
+[browser_tor_TB4.js]
diff --git a/tbb-tests/browser_tor_TB4.js b/tbb-tests/browser_tor_TB4.js
new file mode 100644
index 000000000000..8bb12f360e5e
--- /dev/null
+++ b/tbb-tests/browser_tor_TB4.js
@@ -0,0 +1,35 @@
+// # Test for TB4: Tor Browser's Firefox preference overrides
+// This is a minimal test to check whether the 000-tor-browser.js
+// pref overrides are being used at all or not. More comprehensive
+// pref tests are maintained in the tor-browser-bundle-testsuite project.
+
+function test() {
+
+let expectedPrefs = [
+ // Homepage
+ ["browser.startup.homepage", "about:tor"],
+
+ // Disable the "Refresh" prompt that is displayed for stale profiles.
+ ["browser.disableResetPrompt", true],
+
+ // Version placeholder
+ ["torbrowser.version", "dev-build"],
+ ];
+
+let getPref = function (prefName) {
+ let type = Services.prefs.getPrefType(prefName);
+ if (type === Services.prefs.PREF_INT) return Services.prefs.getIntPref(prefName);
+ if (type === Services.prefs.PREF_BOOL) return Services.prefs.getBoolPref(prefName);
+ if (type === Services.prefs.PREF_STRING) return Services.prefs.getCharPref(prefName);
+ // Something went wrong.
+ throw new Error("Can't access pref " + prefName);
+};
+
+let testPref = function([key, expectedValue]) {
+ let foundValue = getPref(key);
+ is(foundValue, expectedValue, "Pref '" + key + "' should be '" + expectedValue +"'.");
+};
+
+expectedPrefs.map(testPref);
+
+} // end function test()
diff --git a/tbb-tests/browser_tor_bug2950.js b/tbb-tests/browser_tor_bug2950.js
new file mode 100644
index 000000000000..16e41344a3c4
--- /dev/null
+++ b/tbb-tests/browser_tor_bug2950.js
@@ -0,0 +1,74 @@
+// # Regression tests for tor Bug #2950, Make Permissions Manager memory-only
+// Ensures that permissions.sqlite file in profile directory is not written to,
+// even when we write a value to Firefox's permissions database.
+
+// The requisite test() function.
+function test() {
+
+// Needed because of asynchronous part later in the test.
+waitForExplicitFinish();
+
+// Shortcut
+let Ci = Components.interfaces;
+
+// ## utility functions
+
+// __principal(spec)__.
+// Creates a principal instance from a spec
+// (string address such as "https://www.torproject.org").
+let principal = spec => Services.scriptSecurityManager.createContentPrincipalFromOrigin(spec);
+
+// __setPermission(spec, key, value)__.
+// Sets the site permission of type key to value, for the site located at address spec.
+let setPermission = (spec, key, value) => SitePermissions.setForPrincipal(principal(spec), key, value);
+
+// __getPermission(spec, key)__.
+// Reads the site permission value for permission type key, for the site
+// located at address spec.
+let getPermission = (spec, key) => SitePermissions.getForPrincipal(principal(spec), key);
+
+// __profileDirPath__.
+// The Firefox Profile directory. Expected location of various persistent files.
+let profileDirPath = Services.dirsvc.get("ProfD", Components.interfaces.nsIFile).path;
+
+// __fileInProfile(fileName)__.
+// Returns an nsIFile instance corresponding to a file in the Profile directory.
+let fileInProfile = fileName => FileUtils.File(profileDirPath + "/" + fileName);
+
+// ## Now let's run the test.
+
+let SITE = "https://www.torproject.org",
+ KEY = "popup";
+
+let permissionsFile = fileInProfile("permissions.sqlite"),
+ lastModifiedTime = null,
+ newModifiedTime = null;
+if (permissionsFile.exists()) {
+ lastModifiedTime = permissionsFile.lastModifiedTime;
+}
+// Read the original value of the permission.
+let originalValue = getPermission(SITE, KEY);
+
+// We need to delay by at least 1000 ms, because that's the granularity
+// of file time stamps, it seems.
+window.setTimeout(
+ function () {
+ // Set the permission to a new value.
+ setPermission(SITE, KEY, SitePermissions.BLOCK);
+ // Now read back the permission value again.
+ let newReadValue = getPermission(SITE, KEY);
+ // Compare to confirm that the permission
+ // value was successfully changed.
+ Assert.notDeepEqual(originalValue, newReadValue, "Set a value in permissions db (perhaps in memory).");
+ // If file existed or now exists, get the current time stamp.
+ if (permissionsFile.exists()) {
+ newModifiedTime = permissionsFile.lastModifiedTime;
+ }
+ // If file was created or modified since we began this test,
+ // then permissions db is not memory only. Complain!
+ is(lastModifiedTime, newModifiedTime, "Don't write to permissions.sqlite file on disk.");
+ // We are done with the test.
+ finish();
+ }, 1100);
+
+} // test()
diff --git a/tbb-tests/mochitest.ini b/tbb-tests/mochitest.ini
new file mode 100644
index 000000000000..cc5172733bbe
--- /dev/null
+++ b/tbb-tests/mochitest.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_tor_bug2874.html]
diff --git a/tbb-tests/moz.build b/tbb-tests/moz.build
new file mode 100644
index 000000000000..de8a41a67a5c
--- /dev/null
+++ b/tbb-tests/moz.build
@@ -0,0 +1,10 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MOCHITEST_MANIFESTS += ['mochitest.ini']
+
+BROWSER_CHROME_MANIFESTS += [ 'browser.ini' ]
+
diff --git a/tbb-tests/test_tor_bug2874.html b/tbb-tests/test_tor_bug2874.html
new file mode 100644
index 000000000000..c0a956e9f687
--- /dev/null
+++ b/tbb-tests/test_tor_bug2874.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Tor bug
+https://trac.torproject.org/projects/tor/ticket/2874
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Tor Bug 2874</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript">
+ is(typeof Components, 'undefined', "The global window object should not expose a Components property to untrusted content.");
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://trac.torproject.org/projects/tor/ticket/2874">Tor Bug 2874</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>
diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild
index d092b8b22346..6e35a4602300 100644
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -96,7 +96,8 @@ if CONFIG['MOZ_WEBRTC'] and CONFIG['COMPILE_ENVIRONMENT']:
]
if CONFIG['ENABLE_TESTS']:
- DIRS += ['/testing/specialpowers']
+ DIRS += ['/testing/specialpowers',
+ '/tbb-tests']
DIRS += [
'/testing/gtest',
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 10760: Integrate TorButton to TorBrowser core
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit ad06e53ed0d1e08d1187fa08daacfe89ad46b269
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Feb 19 23:05:08 2020 +0100
Bug 10760: Integrate TorButton to TorBrowser core
Because of the non-restartless nature of Torbutton, it required
a two-stage installation process. On mobile, it was a problem,
because it was not loading when the user opened the browser for
the first time.
Moving it to tor-browser and making it a system extension allows it
to load when the user opens the browser for first time.
Additionally, this patch also fixes Bug 27611.
Bug 26321: New Circuit and New Identity menu items
Bug 14392: Make about:tor behave like other initial pages.
Bug 25013: Add torbutton as a tor-browser submodule
---
.gitmodules | 3 ++
browser/base/content/aboutDialog.xhtml | 38 +++++++++++------
browser/base/content/browser-doctype.inc | 6 +++
browser/base/content/browser-menubar.inc | 49 ++++++++++++++++------
browser/base/content/browser-sets.inc | 2 +
browser/base/content/browser.js | 1 +
browser/base/content/browser.xhtml | 9 ++++
.../controlcenter/content/identityPanel.inc.xhtml | 17 ++++++++
.../customizableui/content/panelUI.inc.xhtml | 17 +++++++-
browser/installer/package-manifest.in | 2 +
docshell/base/nsAboutRedirector.cpp | 6 ++-
docshell/build/components.conf | 1 +
mobile/android/installer/package-manifest.in | 4 ++
toolkit/moz.build | 1 +
.../mozapps/extensions/internal/XPIProvider.jsm | 9 ++++
toolkit/torproject/torbutton | 1 +
.../lib/environments/browser-window.js | 6 ++-
17 files changed, 142 insertions(+), 30 deletions(-)
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000000..2f03bd8e22df
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "toolkit/torproject/torbutton"]
+ path = toolkit/torproject/torbutton
+ url = https://git.torproject.org/torbutton.git
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
index 69cbf846bbef..5274cbc02831 100644
--- a/browser/base/content/aboutDialog.xhtml
+++ b/browser/base/content/aboutDialog.xhtml
@@ -7,11 +7,11 @@
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/aboutDialog.css" type="text/css"?>
<?xml-stylesheet href="chrome://branding/content/aboutDialog.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/aboutDialog.css" type="text/css"?>
+<!-- We need to include the localization DTDs until we migrate to Fluent -->
<!DOCTYPE window [
-#ifdef XP_MACOSX
#include browser-doctype.inc
-#endif
]>
<window xmlns:html="http://www.w3.org/1999/xhtml"
@@ -28,7 +28,7 @@
data-l10n-id="aboutDialog-title"
#endif
role="dialog"
- aria-describedby="version distribution distributionId communityDesc contributeDesc trademark"
+ aria-describedby="version distribution distributionId projectDesc helpDesc trademark trademarkTor"
>
#ifdef XP_MACOSX
#include macWindow.inc.xhtml
@@ -132,24 +132,36 @@
<label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-exp-creditsLink"></label>
</description>
</vbox>
- <description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
- <label is="text-link" href="http://www.mozilla.org/" data-l10n-name="community-mozillaLink"></label>
- <label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-creditsLink"></label>
+ <!-- Keep communityDesc and contributeDesc to avoid JS errors trying to hide them -->
+ <description class="text-blurb" id="communityDesc" data-l10n-id="community-2" hidden="true"></description>
+ <description class="text-blurb" id="contributeDesc" data-l10n-id="helpus" hidden="true"></description>
+ <description class="text-blurb" id="projectDesc">
+ &project.start;
+ <label is="text-link" href="https://www.torproject.org/">
+ &project.tpoLink;
+ </label>&project.end;
</description>
- <description class="text-blurb" id="contributeDesc" data-l10n-id="helpus">
- <label is="text-link" href="https://donate.mozilla.org/?utm_source=firefox&utm_medium=referral&…" data-l10n-name="helpus-donateLink"></label>
- <label is="text-link" href="http://www.mozilla.org/contribute/" data-l10n-name="helpus-getInvolvedLink"></label>
+ <description class="text-blurb" id="helpDesc">
+ &help.start;
+ <label is="text-link" href="https://donate.torproject.org/">
+ &help.donateLink;
+ </label>
+ &help.or;
+ <label is="text-link" href="https://community.torproject.org/">
+ &help.getInvolvedLink;
+ </label>&help.end;
</description>
</vbox>
</vbox>
</hbox>
<vbox id="bottomBox">
- <hbox pack="center">
- <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"></label>
- <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"></label>
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/" data-l10n-id="bottomLinks-privacy"></label>
+ <hbox id="newBottom" pack="center" position="1">
+ <label is="text-link" class="bottom-link" href="https://support.torproject.org/">&bottomLinks.questions;</label>
+ <label is="text-link" class="bottom-link" href="https://community.torproject.org/relay/">&bottomLinks.grow;</label>
+ <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license">&bottomLinks.license;</label>
</hbox>
<description id="trademark" data-l10n-id="trademarkInfo"></description>
+ <description id="trademarkTor">&tor.TrademarkStatement;</description>
</vbox>
</vbox>
diff --git a/browser/base/content/browser-doctype.inc b/browser/base/content/browser-doctype.inc
index 9aa278773158..48cf6cd3eda0 100644
--- a/browser/base/content/browser-doctype.inc
+++ b/browser/base/content/browser-doctype.inc
@@ -14,3 +14,9 @@
%syncBrandDTD;
<!ENTITY % brandingsDTD SYSTEM "chrome://browser/locale/brandings.dtd">
%brandingsDTD;
+<!ENTITY % torbuttonDTD SYSTEM "chrome://torbutton/locale/torbutton.dtd">
+%torbuttonDTD;
+<!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
+%aboutTorDTD;
+<!ENTITY % aboutDialogDTD SYSTEM "chrome://torbutton/locale/aboutDialog.dtd">
+%aboutDialogDTD;
diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc
index 267ec91707ba..6f4aa9289c35 100644
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -33,6 +33,18 @@
command="Tools:NonFissionWindow"
accesskey="s" label="New Non-Fission Window"/>
#endif
+ <menuseparator/>
+ <menuitem id="menu_newIdentity"
+ accesskey="&torbutton.context_menu.new_identity_key;"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <menuitem id="menu_newCircuit"
+ accesskey="&torbutton.context_menu.new_circuit_key;"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
+ <menuseparator/>
<menuitem id="menu_openLocation"
hidden="true"
command="Browser:OpenLocation"
@@ -455,17 +467,28 @@
#endif
data-l10n-id="menu-help">
<menupopup id="menu_HelpPopup" onpopupshowing="buildHelpMenu();">
- <menuitem id="menu_openHelp"
+ <!-- dummy elements to avoid 'getElementById' errors -->
+ <box id="feedbackPage"/>
+ <box id="helpSafeMode"/>
+ <box id="menu_HelpPopup_reportPhishingtoolmenu"/>
+ <box id="menu_HelpPopup_reportPhishingErrortoolmenu"/>
+ <!-- Add Tor Browser manual link -->
+ <menuitem id="torBrowserUserManual"
+ oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.locale.requestedLocale, {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});"
+ label="&aboutTor.torbrowser_user_manual.label;"
+ accesskey="&aboutTor.torbrowser_user_manual.accesskey;"/>
+ <!-- Bug 18905: Hide unused help menu items -->
+ <!-- <menuitem id="menu_openHelp"
oncommand="openHelpLink('firefox-help')"
onclick="checkForMiddleClick(this, event);"
data-l10n-id="menu-help-product"
#ifdef XP_MACOSX
- key="key_openHelpMac"/>
+ key="key_openHelpMac"/> -->
#else
- />
+ /> -->
#endif
- <menuitem id="menu_openTour"
- oncommand="openTourPage();" data-l10n-id="menu-help-show-tour"/>
+ <!-- <menuitem id="menu_openTour"
+ oncommand="openTourPage();" data-l10n-id="menu-help-show-tour"/> -->
<menuitem id="help_importFromAnotherBrowser"
command="cmd_help_importFromAnotherBrowser" data-l10n-id="menu-help-import-from-another-browser"/>
<menuitem id="menu_keyboardShortcuts"
@@ -474,22 +497,22 @@
<menuitem id="troubleShooting"
oncommand="openTroubleshootingPage()"
onclick="checkForMiddleClick(this, event);" data-l10n-id="menu-help-troubleshooting-info"/>
- <menuitem id="feedbackPage"
+ <!-- <menuitem id="feedbackPage"
oncommand="openFeedbackPage()"
- onclick="checkForMiddleClick(this, event);" data-l10n-id="menu-help-feedback-page"/>
- <menuitem id="helpSafeMode"
- oncommand="safeModeRestart();" data-l10n-id="menu-help-safe-mode-without-addons"/>
- <menuitem id="menu_HelpPopup_reportPhishingtoolmenu"
+ onclick="checkForMiddleClick(this, event);" data-l10n-id="menu-help-feedback-page"/> -->
+ <!-- <menuitem id="helpSafeMode"
+ oncommand="safeModeRestart();" data-l10n-id="menu-help-safe-mode-without-addons"/> -->
+ <!-- <menuitem id="menu_HelpPopup_reportPhishingtoolmenu"
disabled="true"
oncommand="openUILink(gSafeBrowsing.getReportURL('Phish'), event, {triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({})});"
onclick="checkForMiddleClick(this, event);"
- hidden="true" data-l10n-id="menu-help-report-deceptive-site"/>
- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
+ hidden="true" data-l10n-id="menu-help-report-deceptive-site"/> -->
+ <!-- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
disabled="true"
oncommand="ReportFalseDeceptiveSite();"
onclick="checkForMiddleClick(this, event);"
data-l10n-id="menu-help-not-deceptive"
- hidden="true"/>
+ hidden="true"/> -->
<menuseparator id="helpPolicySeparator"
hidden="true"/>
<menuitem id="helpPolicySupport"
diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc
index aae94e8d4654..fa71bfb37a84 100644
--- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc
@@ -374,4 +374,6 @@
data-l10n-id="hide-other-apps-shortcut"
modifiers="accel,alt"/>
#endif
+ <key id="torbutton-new-identity-key" modifiers="accel shift" key="U" oncommand="torbutton_new_identity()"/>
+ <key id="torbutton-new-circuit-key" modifiers="accel shift" key="L" oncommand="torbutton_new_circuit()"/>
</keyset>
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 5eb38ba78282..3c342dedd5d4 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -620,6 +620,7 @@ var gPageIcons = {
};
var gInitialPages = [
+ "about:tor",
"about:blank",
"about:newtab",
"about:home",
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 62825bfd206a..229fc2a26dd2 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -29,6 +29,8 @@
<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/tor-circuit-display.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
# All DTD information is stored in a separate file so that it can be shared by
# hiddenWindowMac.xhtml.
@@ -105,11 +107,18 @@
Services.scriptloader.loadSubScript("chrome://browser/content/places/places-menupopup.js", this);
Services.scriptloader.loadSubScript("chrome://browser/content/search/autocomplete-popup.js", this);
Services.scriptloader.loadSubScript("chrome://browser/content/search/searchbar.js", this);
+ Services.scriptloader.loadSubScript("chrome://torbutton/content/tor-circuit-display.js", this);
+ Services.scriptloader.loadSubScript("chrome://torbutton/content/torbutton.js", this);
window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
window.onclose = WindowIsClosing;
+ //onLoad Handler
+ try {
+ window.addEventListener("load", torbutton_init, false);
+ } catch (e) {}
+
window.addEventListener("MozBeforeInitialXULLayout",
gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml
index 77c0b9b2413f..a8edda858e41 100644
--- a/browser/components/controlcenter/content/identityPanel.inc.xhtml
+++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml
@@ -60,6 +60,23 @@
oncommand="gIdentityHandler.showSecuritySubView();"/>
</hbox>
+ <!-- Circuit display section -->
+ <hbox id="circuit-display-container" class="identity-popup-section">
+ <vbox id="circuit-display-content" flex="1" role="group"
+ aria-labelledby="circuit-display-headline">
+ <hbox id="circuit-display-header" align="center">
+ <label id="circuit-display-headline"
+ role="heading" aria-level="2">&torbutton.circuit_display.title;</label>
+ </hbox>
+ <html:ul id="circuit-display-nodes" dir="auto"/>
+ </vbox>
+ <vbox id="circuit-reload-content" flex="1">
+ <html:button id="circuit-reload-button"
+ onclick="torbutton_new_circuit()">&torbutton.circuit_display.new_circuit;</html:button>
+ <hbox id="circuit-guard-note-container"/>
+ </vbox>
+ </hbox>
+
<!-- Permissions Section -->
<hbox class="identity-popup-section"
when-connection="not-secure secure secure-ev secure-cert-user-overridden file extension cert-error-page">
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
index 3a8b74b0a9f3..bdb8a7c227cf 100644
--- a/browser/components/customizableui/content/panelUI.inc.xhtml
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml
@@ -265,7 +265,8 @@
class="subviewbutton subviewbutton-iconic"
label="&newPrivateWindow.label;"
key="key_privatebrowsing"
- command="Tools:PrivateBrowsing"/>
+ command="Tools:PrivateBrowsing"
+ hidden="true"/>
#ifdef NIGHTLY_BUILD
<toolbarbutton id="appMenu-fission-window-button"
class="subviewbutton subviewbutton-iconic"
@@ -281,7 +282,19 @@
<toolbarbutton id="appMenuRestoreLastSession"
label="&appMenuHistory.restoreSession.label;"
class="subviewbutton subviewbutton-iconic"
- command="Browser:RestoreLastSession"/>
+ command="Browser:RestoreLastSession"
+ hidden="true"/>
+ <toolbarseparator/>
+ <toolbarbutton id="appMenuNewIdentity"
+ class="subviewbutton subviewbutton-iconic"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <toolbarbutton id="appMenuNewCircuit"
+ class="subviewbutton subviewbutton-iconic"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
<toolbarseparator/>
<toolbaritem id="appMenu-zoom-controls" class="toolbaritem-combined-buttons" closemenu="none">
<!-- Use a spacer, because panel sizing code gets confused when using CSS methods. -->
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 582a6e13d607..3722bf2ee22b 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -253,6 +253,8 @@
@RESPATH@/browser/chrome/torlauncher/*
@RESPATH@/browser/@PREF_DIR@/torlauncher-prefs.js
#endif
+@RESPATH@/chrome/torbutton.manifest
+@RESPATH@/chrome/torbutton/*
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
index 730fd6aea654..051f239c76ac 100644
--- a/docshell/base/nsAboutRedirector.cpp
+++ b/docshell/base/nsAboutRedirector.cpp
@@ -146,7 +146,11 @@ static const RedirEntry kRedirMap[] = {
{"crashcontent", "about:blank",
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
nsIAboutModule::URI_CAN_LOAD_IN_CHILD |
- nsIAboutModule::URI_MUST_LOAD_IN_CHILD}};
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD},
+ {"tor", "chrome://torbutton/content/aboutTor/aboutTor.xhtml",
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT}};
static const int kRedirTotal = mozilla::ArrayLength(kRedirMap);
NS_IMETHODIMP
diff --git a/docshell/build/components.conf b/docshell/build/components.conf
index 6d7253d01631..2d56ea33389d 100644
--- a/docshell/build/components.conf
+++ b/docshell/build/components.conf
@@ -27,6 +27,7 @@ about_pages = [
'srcdoc',
'support',
'telemetry',
+ 'tor',
'url-classifier',
'webrtc',
]
diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
index 17d6471c4742..055eb4717447 100644
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -137,6 +137,10 @@
@BINPATH@/chrome/devtools@JAREXT@
@BINPATH@/chrome/devtools.manifest
+; Torbutton
+@BINPATH@/chrome/torbutton@JAREXT@
+@BINPATH@/chrome/torbutton.manifest
+
; [Default Preferences]
; All the pref files must be part of base to prevent migration bugs
#ifdef MOZ_GECKOVIEW_JAR
diff --git a/toolkit/moz.build b/toolkit/moz.build
index b6f792da7124..3451334de15c 100644
--- a/toolkit/moz.build
+++ b/toolkit/moz.build
@@ -23,6 +23,7 @@ DIRS += [
'pluginproblem',
'profile',
'themes',
+ 'torproject/torbutton',
]
if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['MOZ_DEFAULT_BROWSER_AGENT']:
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index bcdf6f40d5ed..bf31932b59f1 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -1462,6 +1462,15 @@ var XPIStates = {
for (let [id, file] of loc.readAddons()) {
knownIds.delete(id);
+ // Uninstall torbutton if it is installed in the user profile
+ if (id === "torbutton(a)torproject.org" &&
+ loc.name === KEY_APP_PROFILE) {
+ logger.debug("Uninstalling torbutton from user profile.");
+ loc.installer.uninstallAddon(id);
+ changed = true;
+ continue;
+ }
+
// Since it is now part of the browser, uninstall the Tor Launcher
// extension. This will remove the Tor Launcher .xpi from user
// profiles on macOS.
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
new file mode 160000
index 000000000000..caffa836a4ec
--- /dev/null
+++ b/toolkit/torproject/torbutton
@@ -0,0 +1 @@
+Subproject commit caffa836a4ec7f1bc7bf61951d954961aa6a9eff
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
index 76e03f2d49bb..2ff107b553b2 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
@@ -75,7 +75,11 @@ function getGlobalScriptIncludes(scriptPath) {
"browser/components/search/content/"
)
.replace("chrome://browser/content/", "browser/base/content/")
- .replace("chrome://global/content/", "toolkit/content/");
+ .replace("chrome://global/content/", "toolkit/content/")
+ .replace(
+ "chrome://torbutton/content/",
+ "toolkit/torproject/torbutton/chrome/content/"
+ );
for (let mapping of Object.getOwnPropertyNames(MAPPINGS)) {
if (sourceFile.includes(mapping)) {
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 28044: Integrate Tor Launcher into tor-browser
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 1fcd515dff053f8cb0b53b3b0792a71c7c3296e7
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 26 10:07:17 2019 -0500
Bug 28044: Integrate Tor Launcher into tor-browser
Build and package Tor Launcher as part of the browser (similar to
how pdfjs is handled).
If a Tor Launcher extension is present in the user's profile, it is
removed.
---
browser/extensions/moz.build | 5 +++++
browser/installer/package-manifest.in | 5 +++++
toolkit/mozapps/extensions/internal/XPIProvider.jsm | 10 ++++++++++
3 files changed, 20 insertions(+)
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index 4c9fa789d12a..fd2e65d01f02 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -12,3 +12,8 @@ DIRS += [
'webcompat',
'report-site-issue'
]
+
+if not CONFIG['TOR_BROWSER_DISABLE_TOR_LAUNCHER']:
+ DIRS += [
+ 'tor-launcher',
+ ]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 7deaf1b51f9a..582a6e13d607 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -248,6 +248,11 @@
@RESPATH@/browser/chrome/browser.manifest
@RESPATH@/browser/chrome/pdfjs.manifest
@RESPATH@/browser/chrome/pdfjs/*
+#ifndef TOR_BROWSER_DISABLE_TOR_LAUNCHER
+@RESPATH@/browser/chrome/torlauncher.manifest
+@RESPATH@/browser/chrome/torlauncher/*
+@RESPATH@/browser/@PREF_DIR@/torlauncher-prefs.js
+#endif
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index ba67e5f6bee8..bcdf6f40d5ed 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -1462,6 +1462,16 @@ var XPIStates = {
for (let [id, file] of loc.readAddons()) {
knownIds.delete(id);
+ // Since it is now part of the browser, uninstall the Tor Launcher
+ // extension. This will remove the Tor Launcher .xpi from user
+ // profiles on macOS.
+ if (id === "tor-launcher(a)torproject.org") {
+ logger.debug("Uninstalling the Tor Launcher extension.");
+ loc.installer.uninstallAddon(id);
+ changed = true;
+ continue;
+ }
+
let xpiState = loc.get(id);
if (!xpiState) {
// If the location is not supported for sideloading, skip new
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Add TorStrings module for localization
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit fc1754fe73003383b2432cfdeaeedd13960f3827
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Jul 24 21:15:20 2020 +0200
Add TorStrings module for localization
---
browser/modules/TorStrings.jsm | 490 +++++++++++++++++++++++++++++++++++++++++
browser/modules/moz.build | 1 +
2 files changed, 491 insertions(+)
diff --git a/browser/modules/TorStrings.jsm b/browser/modules/TorStrings.jsm
new file mode 100644
index 000000000000..e8a8d37ae373
--- /dev/null
+++ b/browser/modules/TorStrings.jsm
@@ -0,0 +1,490 @@
+"use strict";
+
+var EXPORTED_SYMBOLS = ["TorStrings"];
+
+const { XPCOMUtils } = ChromeUtils.import(
+ "resource://gre/modules/XPCOMUtils.jsm"
+);
+const { Services } = ChromeUtils.import(
+ "resource://gre/modules/Services.jsm"
+);
+const { getLocale } = ChromeUtils.import(
+ "resource://torbutton/modules/utils.js"
+);
+
+XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
+XPCOMUtils.defineLazyGetter(this, "domParser", () => {
+ const parser = new DOMParser();
+ parser.forceEnableDTD();
+ return parser;
+});
+
+/*
+ Tor DTD String Bundle
+
+ DTD strings loaded from torbutton/tor-launcher, but provide a fallback in case they aren't available
+*/
+class TorDTDStringBundle {
+ constructor(aBundleURLs, aPrefix) {
+ let locations = [];
+ for (const [index, url] of aBundleURLs.entries()) {
+ locations.push(`<!ENTITY % dtd_${index} SYSTEM "${url}">%dtd_${index};`);
+ }
+ this._locations = locations;
+ this._prefix = aPrefix;
+ }
+
+ // copied from testing/marionette/l10n.js
+ localizeEntity(urls, id) {
+ // Use the DOM parser to resolve the entity and extract its real value
+ let header = `<?xml version="1.0"?><!DOCTYPE elem [${this._locations.join(
+ ""
+ )}]>`;
+ let elem = `<elem id="elementID">&${id};</elem>`;
+ let doc = domParser.parseFromString(header + elem, "text/xml");
+ let element = doc.querySelector("elem[id='elementID']");
+
+ if (element === null) {
+ throw new Error(`Entity with id='${id}' hasn't been found`);
+ }
+
+ return element.textContent;
+ }
+
+ getString(key, fallback) {
+ if (key) {
+ try {
+ return this.localizeEntity(this._bundleURLs, `${this._prefix}${key}`);
+ } catch (e) {}
+ }
+
+ // on failure, assign the fallback if it exists
+ if (fallback) {
+ return fallback;
+ }
+ // otherwise return string key
+ return `$(${key})`;
+ }
+}
+
+/*
+ Tor Property String Bundle
+
+ Property strings loaded from torbutton/tor-launcher, but provide a fallback in case they aren't available
+*/
+class TorPropertyStringBundle {
+ constructor(aBundleURL, aPrefix) {
+ try {
+ this._bundle = Services.strings.createBundle(aBundleURL);
+ } catch (e) {}
+
+ this._prefix = aPrefix;
+ }
+
+ getString(key, fallback) {
+ if (key) {
+ try {
+ return this._bundle.GetStringFromName(`${this._prefix}${key}`);
+ } catch (e) {}
+ }
+
+ // on failure, assign the fallback if it exists
+ if (fallback) {
+ return fallback;
+ }
+ // otherwise return string key
+ return `$(${key})`;
+ }
+}
+
+/*
+ Security Level Strings
+*/
+var TorStrings = {
+ /*
+ Tor Browser Security Level Strings
+ */
+ securityLevel: (function() {
+ let tsb = new TorDTDStringBundle(
+ ["chrome://torbutton/locale/torbutton.dtd"],
+ "torbutton.prefs.sec_"
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ // read localized strings from torbutton; but use hard-coded en-US strings as fallbacks in case of error
+ let retval = {
+ securityLevel: getString("caption", "Security Level"),
+ customWarning: getString("custom_warning", "Custom"),
+ overview: getString(
+ "overview",
+ "Disable certain web features that can be used to attack your security and anonymity."
+ ),
+ standard: {
+ level: getString("standard_label", "Standard"),
+ tooltip: getString("standard_tooltip", "Security Level : Standard"),
+ summary: getString(
+ "standard_description",
+ "All Tor Browser and website features are enabled."
+ ),
+ },
+ safer: {
+ level: getString("safer_label", "Safer"),
+ tooltip: getString("safer_tooltip", "Security Level : Safer"),
+ summary: getString(
+ "safer_description",
+ "Disables website features that are often dangerous, causing some sites to lose functionality."
+ ),
+ description1: getString(
+ "js_on_https_sites_only",
+ "JavaScript is disabled on non-HTTPS sites."
+ ),
+ description2: getString(
+ "limit_typography",
+ "Some fonts and math symbols are disabled."
+ ),
+ description3: getString(
+ "click_to_play_media",
+ "Audio and video (HTML5 media), and WebGL are click-to-play."
+ ),
+ },
+ safest: {
+ level: getString("safest_label", "Safest"),
+ tooltip: getString("safest_tooltip", "Security Level : Safest"),
+ summary: getString(
+ "safest_description",
+ "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts."
+ ),
+ description1: getString(
+ "js_disabled",
+ "JavaScript is disabled by default on all sites."
+ ),
+ description2: getString(
+ "limit_graphics_and_typography",
+ "Some fonts, icons, math symbols, and images are disabled."
+ ),
+ description3: getString(
+ "click_to_play_media",
+ "Audio and video (HTML5 media), and WebGL are click-to-play."
+ ),
+ },
+ custom: {
+ summary: getString(
+ "custom_summary",
+ "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels."
+ ),
+ },
+ learnMore: getString("learn_more_label", "Learn more"),
+ learnMoreURL: `https://tb-manual.torproject.org/${getLocale()}/security-settings/`,
+ restoreDefaults: getString("restore_defaults", "Restore Defaults"),
+ advancedSecuritySettings: getString(
+ "advanced_security_settings",
+ "Advanced Security Settings\u2026"
+ ),
+ };
+ return retval;
+ })() /* Security Level Strings */,
+
+ /*
+ Tor about:preferences#tor Strings
+ */
+ settings: (function() {
+ let tsb = new TorDTDStringBundle(
+ ["chrome://torlauncher/locale/network-settings.dtd"],
+ ""
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ let retval = {
+ categoryTitle: getString("torPreferences.categoryTitle", "Tor"),
+ torPreferencesHeading: getString(
+ "torPreferences.torSettings",
+ "Tor Settings"
+ ),
+ torPreferencesDescription: getString(
+ "torPreferences.torSettingsDescription",
+ "Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world."
+ ),
+ learnMore: getString("torPreferences.learnMore", "Learn More"),
+ bridgesHeading: getString("torPreferences.bridges", "Bridges"),
+ bridgesDescription: getString(
+ "torPreferences.bridgesDescription",
+ "Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another."
+ ),
+ useBridge: getString("torPreferences.useBridge", "Use a bridge"),
+ selectBridge: getString(
+ "torsettings.useBridges.default",
+ "Select a bridge"
+ ),
+ requestBridgeFromTorProject: getString(
+ "torsettings.useBridges.bridgeDB",
+ "Request a bridge from torproject.org"
+ ),
+ requestNewBridge: getString(
+ "torPreferences.requestNewBridge",
+ "Request a New Bridge\u2026"
+ ),
+ provideBridge: getString(
+ "torPreferences.provideBridge",
+ "Provide a bridge"
+ ),
+ provideBridgeDirections: getString(
+ "torsettings.useBridges.label",
+ "Enter bridge information from a trusted source."
+ ),
+ provideBridgePlaceholder: getString(
+ "torsettings.useBridges.placeholder",
+ "type address:port (one per line)"
+ ),
+ advancedHeading: getString("torPreferences.advanced", "Advanced"),
+ advancedDescription: getString(
+ "torPreferences.advancedDescription",
+ "Configure how Tor Browser connects to the internet."
+ ),
+ useLocalProxy: getString("torsettings.useProxy.checkbox", "I use a proxy to connect to the Internet"),
+ proxyType: getString("torsettings.useProxy.type", "Proxy Type"),
+ proxyTypeSOCKS4: getString("torsettings.useProxy.type.socks4", "SOCKS4"),
+ proxyTypeSOCKS5: getString("torsettings.useProxy.type.socks5", "SOCKS5"),
+ proxyTypeHTTP: getString("torsettings.useProxy.type.http", "HTTP/HTTPS"),
+ proxyAddress: getString("torsettings.useProxy.address", "Address"),
+ proxyAddressPlaceholder: getString(
+ "torsettings.useProxy.address.placeholder",
+ "IP address or hostname"
+ ),
+ proxyPort: getString("torsettings.useProxy.port", "Port"),
+ proxyUsername: getString("torsettings.useProxy.username", "Username"),
+ proxyPassword: getString("torsettings.useProxy.password", "Password"),
+ proxyUsernamePasswordPlaceholder: getString(
+ "torsettings.optional",
+ "Optional"
+ ),
+ useFirewall: getString(
+ "torsettings.firewall.checkbox",
+ "This computer goes through a firewall that only allows connections to certain ports"
+ ),
+ allowedPorts: getString(
+ "torsettings.firewall.allowedPorts",
+ "Allowed Ports"
+ ),
+ allowedPortsPlaceholder: getString(
+ "torPreferences.firewallPortsPlaceholder",
+ "Comma-seperated values"
+ ),
+ requestBridgeDialogTitle: getString(
+ "torPreferences.requestBridgeDialogTitle",
+ "Request Bridge"
+ ),
+ submitCaptcha: getString(
+ "torsettings.useBridges.captchaSubmit",
+ "Submit"
+ ),
+ contactingBridgeDB: getString(
+ "torPreferences.requestBridgeDialogWaitPrompt",
+ "Contacting BridgeDB. Please Wait."
+ ),
+ solveTheCaptcha: getString(
+ "torPreferences.requestBridgeDialogSolvePrompt",
+ "Solve the CAPTCHA to request a bridge."
+ ),
+ captchaTextboxPlaceholder: getString(
+ "torsettings.useBridges.captchaSolution.placeholder",
+ "Enter the characters from the image"
+ ),
+ incorrectCaptcha: getString(
+ "torPreferences.requestBridgeErrorBadSolution",
+ "The solution is not correct. Please try again."
+ ),
+ showTorDaemonLogs: getString(
+ "torPreferences.viewTorLogs",
+ "View the Tor logs."
+ ),
+ showLogs: getString("torPreferences.viewLogs", "View Logs\u2026"),
+ torLogDialogTitle: getString(
+ "torPreferences.torLogsDialogTitle",
+ "Tor Logs"
+ ),
+ copyLog: getString("torsettings.copyLog", "Copy Tor Log to Clipboard"),
+
+ learnMoreTorBrowserURL: `https://tb-manual.torproject.org/${getLocale()}/about/`,
+ learnMoreBridgesURL: `https://tb-manual.torproject.org/${getLocale()}/bridges/`,
+ learnMoreNetworkSettingsURL: `about:blank`,
+ };
+
+ return retval;
+ })() /* Tor Network Settings Strings */,
+
+ /*
+ Tor Onion Services Strings, e.g., for the authentication prompt.
+ */
+ onionServices: (function() {
+ let tsb = new TorPropertyStringBundle(
+ "chrome://torbutton/locale/torbutton.properties",
+ "onionServices."
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ const kProblemLoadingSiteFallback = "Problem Loading Onionsite";
+ const kLongDescFallback = "Details: %S";
+
+ let retval = {
+ learnMore: getString("learnMore", "Learn more"),
+ learnMoreURL: `https://support.torproject.org/${getLocale()}/onionservices/client-auth/`,
+ errorPage: {
+ browser: getString("errorPage.browser", "Browser"),
+ network: getString("errorPage.network", "Network"),
+ onionSite: getString("errorPage.onionSite", "Onionsite"),
+ },
+ descNotFound: { // Tor SOCKS error 0xF0
+ pageTitle: getString("descNotFound.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("descNotFound.header", "Onionsite Not Found"),
+ longDescription: getString("descNotFound.longDescription", kLongDescFallback),
+ },
+ descInvalid: { // Tor SOCKS error 0xF1
+ pageTitle: getString("descInvalid.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("descInvalid.header", "Onionsite Cannot Be Reached"),
+ longDescription: getString("descInvalid.longDescription", kLongDescFallback),
+ },
+ introFailed: { // Tor SOCKS error 0xF2
+ pageTitle: getString("introFailed.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("introFailed.header", "Onionsite Has Disconnected"),
+ longDescription: getString("introFailed.longDescription", kLongDescFallback),
+ },
+ rendezvousFailed: { // Tor SOCKS error 0xF3
+ pageTitle: getString("rendezvousFailed.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("rendezvousFailed.header", "Unable to Connect to Onionsite"),
+ longDescription: getString("rendezvousFailed.longDescription", kLongDescFallback),
+ },
+ clientAuthMissing: { // Tor SOCKS error 0xF4
+ pageTitle: getString("clientAuthMissing.pageTitle", "Authorization Required"),
+ header: getString("clientAuthMissing.header", "Onionsite Requires Authentication"),
+ longDescription: getString("clientAuthMissing.longDescription", kLongDescFallback),
+ },
+ clientAuthIncorrect: { // Tor SOCKS error 0xF5
+ pageTitle: getString("clientAuthIncorrect.pageTitle", "Authorization Failed"),
+ header: getString("clientAuthIncorrect.header", "Onionsite Authentication Failed"),
+ longDescription: getString("clientAuthIncorrect.longDescription", kLongDescFallback),
+ },
+ badAddress: { // Tor SOCKS error 0xF6
+ pageTitle: getString("badAddress.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("badAddress.header", "Invalid Onionsite Address"),
+ longDescription: getString("badAddress.longDescription", kLongDescFallback),
+ },
+ introTimedOut: { // Tor SOCKS error 0xF7
+ pageTitle: getString("introTimedOut.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("introTimedOut.header", "Onionsite Circuit Creation Timed Out"),
+ longDescription: getString("introTimedOut.longDescription", kLongDescFallback),
+ },
+ authPrompt: {
+ description:
+ getString("authPrompt.description2", "%S is requesting that you authenticate."),
+ keyPlaceholder: getString("authPrompt.keyPlaceholder", "Enter your key"),
+ done: getString("authPrompt.done", "Done"),
+ doneAccessKey: getString("authPrompt.doneAccessKey", "d"),
+ invalidKey: getString("authPrompt.invalidKey", "Invalid key"),
+ failedToSetKey:
+ getString("authPrompt.failedToSetKey", "Failed to set key"),
+ },
+ authPreferences: {
+ header: getString("authPreferences.header", "Onion Services Authentication"),
+ overview: getString("authPreferences.overview", "Some onion services require that you identify yourself with a key"),
+ savedKeys: getString("authPreferences.savedKeys", "Saved Keys"),
+ dialogTitle: getString("authPreferences.dialogTitle", "Onion Services Keys"),
+ dialogIntro: getString("authPreferences.dialogIntro", "Keys for the following onionsites are stored on your computer"),
+ onionSite: getString("authPreferences.onionSite", "Onionsite"),
+ onionKey: getString("authPreferences.onionKey", "Key"),
+ remove: getString("authPreferences.remove", "Remove"),
+ removeAll: getString("authPreferences.removeAll", "Remove All"),
+ failedToGetKeys: getString("authPreferences.failedToGetKeys", "Failed to get keys"),
+ failedToRemoveKey: getString("authPreferences.failedToRemoveKey", "Failed to remove key"),
+ },
+ };
+
+ return retval;
+ })() /* Tor Onion Services Strings */,
+
+ /*
+ OnionLocation
+ */
+ onionLocation: (function() {
+ const tsb = new TorPropertyStringBundle(
+ ["chrome://torbutton/locale/torbutton.properties"],
+ "onionLocation."
+ );
+ const getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ const retval = {
+ alwaysPrioritize: getString(
+ "alwaysPrioritize",
+ "Always Prioritize Onionsites"
+ ),
+ alwaysPrioritizeAccessKey: getString("alwaysPrioritizeAccessKey", "a"),
+ notNow: getString("notNow", "Not Now"),
+ notNowAccessKey: getString("notNowAccessKey", "n"),
+ description: getString(
+ "description",
+ "Website publishers can protect users by adding a security layer. This prevents eavesdroppers from knowing that you are the one visiting that website."
+ ),
+ tryThis: getString("tryThis", "Try this: Onionsite"),
+ onionAvailable: getString("onionAvailable", "Onionsite available"),
+ learnMore: getString("learnMore", "Learn more"),
+ learnMoreURL: `https://tb-manual.torproject.org/${getLocale()}/onion-services/`,
+ always: getString("always", "Always"),
+ askEverytime: getString("askEverytime", "Ask you every time"),
+ prioritizeOnionsDescription: getString(
+ "prioritizeOnionsDescription",
+ "Prioritize onionsites when they are available."
+ ),
+ onionServicesTitle: getString("onionServicesTitle", "Onion Services"),
+ };
+
+ return retval;
+ })() /* OnionLocation */,
+
+ /*
+ Tor Deamon Configuration Key Strings
+ */
+
+ // TODO: proper camel case
+ configKeys: {
+ /* Bridge Conf Settings */
+ useBridges: "UseBridges",
+ bridgeList: "Bridge",
+ /* Proxy Conf Strings */
+ socks4Proxy: "Socks4Proxy",
+ socks5Proxy: "Socks5Proxy",
+ socks5ProxyUsername: "Socks5ProxyUsername",
+ socks5ProxyPassword: "Socks5ProxyPassword",
+ httpsProxy: "HTTPSProxy",
+ httpsProxyAuthenticator: "HTTPSProxyAuthenticator",
+ /* Firewall Conf Strings */
+ reachableAddresses: "ReachableAddresses",
+
+ /* BridgeDB Strings */
+ clientTransportPlugin: "ClientTransportPlugin",
+ },
+
+ /*
+ about:config preference keys
+ */
+
+ preferenceKeys: {
+ defaultBridgeType: "extensions.torlauncher.default_bridge_type",
+ recommendedBridgeType:
+ "extensions.torlauncher.default_bridge_recommended_type",
+ },
+
+ /*
+ about:config preference branches
+ */
+ preferenceBranches: {
+ defaultBridge: "extensions.torlauncher.default_bridge.",
+ bridgeDBBridges: "extensions.torlauncher.bridgedb_bridge.",
+ },
+};
diff --git a/browser/modules/moz.build b/browser/modules/moz.build
index cbb94cf736a0..88f2a55d6f49 100644
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -154,6 +154,7 @@ EXTRA_JS_MODULES += [
'TabUnloader.jsm',
'ThemeVariableMap.jsm',
'TopSiteAttribution.jsm',
+ 'TorStrings.jsm',
'TransientPrefs.jsm',
'webrtcUI.jsm',
'ZoomUI.jsm',
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 3547: Block all plugins.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 96d4254877e52358cbd6521bb788741632ea2637
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Dec 4 16:03:13 2012 -0800
Bug 3547: Block all plugins.
We cannot use the @mozilla.org/extensions/blocklist;1 service, because we
actually want to stop plugins from ever entering the browser's process space
and/or executing code (for example, AV plugins that collect statistics/analyse
urls, magical toolbars that phone home or "help" the user, skype buttons that
ruin our day, and censorship filters). Hence we rolled our own.
See https://trac.torproject.org/projects/tor/ticket/3547#comment:6 for musings
on a better way. Until then, it is delta-darwinism for us.
---
dom/plugins/base/PluginFinder.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dom/plugins/base/PluginFinder.cpp b/dom/plugins/base/PluginFinder.cpp
index 4e1c1fd53698..cace7d4ef6ba 100644
--- a/dom/plugins/base/PluginFinder.cpp
+++ b/dom/plugins/base/PluginFinder.cpp
@@ -480,6 +480,9 @@ nsresult PluginFinder::ScanPluginsDirectory(nsIFile* pluginsDir,
*aPluginsChanged = false;
+ // Block all plugins
+ return NS_OK;
+
#ifdef PLUGIN_LOGGING
nsAutoCString dirPath;
pluginsDir->GetNativePath(dirPath);
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 16439: Remove screencasting code
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit dba6585c21a84d26b71967baf7e9e7ceb485972c
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Jun 24 11:01:11 2015 -0400
Bug 16439: Remove screencasting code
We avoid including the screencasting code on mobile (it got ripped out
for desktop in bug 1393582) by simply excluding the related JS modules
from Tor Browser.
---
toolkit/modules/moz.build | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
index f000f35c126f..e1f1eb5759c5 100644
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -260,10 +260,11 @@ if 'Android' != CONFIG['OS_TARGET']:
]
else:
DEFINES['ANDROID'] = True
- EXTRA_JS_MODULES += [
- 'secondscreen/RokuApp.jsm',
- 'secondscreen/SimpleServiceDiscovery.jsm',
- ]
+ if not CONFIG['TOR_BROWSER_VERSION']:
+ EXTRA_JS_MODULES += [
+ 'secondscreen/RokuApp.jsm',
+ 'secondscreen/SimpleServiceDiscovery.jsm',
+ ]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 14631: Improve profile access error messages.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit cae7d53281746f4a60181d99de0f8460ee19b6d3
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 24 13:50:23 2015 -0500
Bug 14631: Improve profile access error messages.
Instead of always reporting that the profile is locked, display specific
messages for "access denied" and "read-only file system".
To allow for localization, get profile-related error strings from Torbutton.
Use app display name ("Tor Browser") in profile-related error alerts.
---
.../mozapps/profile/profileSelection.properties | 5 +
toolkit/profile/nsToolkitProfileService.cpp | 57 +++++++-
toolkit/profile/nsToolkitProfileService.h | 13 +-
toolkit/xre/nsAppRunner.cpp | 155 ++++++++++++++++++---
4 files changed, 207 insertions(+), 23 deletions(-)
diff --git a/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
index 2be092bf4c4b..922b52cb1385 100644
--- a/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
+++ b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
@@ -12,6 +12,11 @@ restartMessageUnlocker=%S is already running, but is not responding. The old %S
restartMessageNoUnlockerMac=A copy of %S is already open. Only one copy of %S can be open at a time.
restartMessageUnlockerMac=A copy of %S is already open. The running copy of %S will quit in order to open this one.
+# LOCALIZATION NOTE (profileProblemTitle, profileReadOnly, profileReadOnlyMac, profileAccessDenied): Messages displayed when the browser profile cannot be accessed or written to. %S is the application name.
+profileProblemTitle=%S Profile Problem
+profileReadOnly=You cannot run %S from a read-only file system. Please copy %S to another location before trying to use it.
+profileReadOnlyMac=You cannot run %S from a read-only file system. Please copy %S to your Desktop or Applications folder before trying to use it.
+profileAccessDenied=%S does not have permission to access the profile. Please adjust your file system permissions and try again.
# Profile manager
# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
profileTooltip=Profile: ‘%S’ - Path: ‘%S’
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index a3e50f8c00d3..3f32bd95f9c9 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -1161,9 +1161,10 @@ nsToolkitProfileService::SelectStartupProfile(
}
bool wasDefault;
+ ProfileStatus profileStatus;
nsresult rv =
SelectStartupProfile(&argc, argv.get(), aIsResetting, aRootDir, aLocalDir,
- aProfile, aDidCreate, &wasDefault);
+ aProfile, aDidCreate, &wasDefault, profileStatus);
// Since we were called outside of the normal startup path complete any
// startup tasks.
@@ -1196,7 +1197,8 @@ nsToolkitProfileService::SelectStartupProfile(
nsresult nsToolkitProfileService::SelectStartupProfile(
int* aArgc, char* aArgv[], bool aIsResetting, nsIFile** aRootDir,
nsIFile** aLocalDir, nsIToolkitProfile** aProfile, bool* aDidCreate,
- bool* aWasDefaultSelection) {
+ bool* aWasDefaultSelection, ProfileStatus& aProfileStatus) {
+ aProfileStatus = PROFILE_STATUS_OK;
if (mStartupProfileSelected) {
return NS_ERROR_ALREADY_INITIALIZED;
}
@@ -1290,6 +1292,13 @@ nsresult nsToolkitProfileService::SelectStartupProfile(
rv = XRE_GetFileFromPath(arg, getter_AddRefs(lf));
NS_ENSURE_SUCCESS(rv, rv);
+ aProfileStatus = CheckProfileWriteAccess(lf);
+ if (PROFILE_STATUS_OK != aProfileStatus) {
+ NS_ADDREF(*aRootDir = lf);
+ NS_ADDREF(*aLocalDir = lf);
+ return NS_ERROR_FAILURE;
+ }
+
// Make sure that the profile path exists and it's a directory.
bool exists;
rv = lf->Exists(&exists);
@@ -2079,3 +2088,47 @@ nsresult XRE_GetFileFromPath(const char* aPath, nsIFile** aResult) {
# error Platform-specific logic needed here.
#endif
}
+
+// Check for write permission to the profile directory by trying to create a
+// new file (after ensuring that no file with the same name exists).
+ProfileStatus nsToolkitProfileService::CheckProfileWriteAccess(
+ nsIFile* aProfileDir) {
+#if defined(XP_UNIX)
+ NS_NAMED_LITERAL_STRING(writeTestFileName, ".parentwritetest");
+#else
+ NS_NAMED_LITERAL_STRING(writeTestFileName, "parent.writetest");
+#endif
+
+ nsCOMPtr<nsIFile> writeTestFile;
+ nsresult rv = aProfileDir->Clone(getter_AddRefs(writeTestFile));
+ if (NS_SUCCEEDED(rv)) rv = writeTestFile->Append(writeTestFileName);
+
+ if (NS_SUCCEEDED(rv)) {
+ bool doesExist = false;
+ rv = writeTestFile->Exists(&doesExist);
+ if (NS_SUCCEEDED(rv) && doesExist) rv = writeTestFile->Remove(true);
+ }
+
+ if (NS_SUCCEEDED(rv)) {
+ rv = writeTestFile->Create(nsIFile::NORMAL_FILE_TYPE, 0666);
+ (void)writeTestFile->Remove(true);
+ }
+
+ ProfileStatus status =
+ NS_SUCCEEDED(rv) ? PROFILE_STATUS_OK : PROFILE_STATUS_OTHER_ERROR;
+ if (NS_ERROR_FILE_ACCESS_DENIED == rv)
+ status = PROFILE_STATUS_ACCESS_DENIED;
+ else if (NS_ERROR_FILE_READ_ONLY == rv)
+ status = PROFILE_STATUS_READ_ONLY;
+
+ return status;
+}
+
+ProfileStatus nsToolkitProfileService::CheckProfileWriteAccess(
+ nsIToolkitProfile* aProfile) {
+ nsCOMPtr<nsIFile> profileDir;
+ nsresult rv = aProfile->GetRootDir(getter_AddRefs(profileDir));
+ if (NS_FAILED(rv)) return PROFILE_STATUS_OTHER_ERROR;
+
+ return CheckProfileWriteAccess(profileDir);
+}
diff --git a/toolkit/profile/nsToolkitProfileService.h b/toolkit/profile/nsToolkitProfileService.h
index f2a238312b95..cfb1964ee1d7 100644
--- a/toolkit/profile/nsToolkitProfileService.h
+++ b/toolkit/profile/nsToolkitProfileService.h
@@ -15,6 +15,14 @@
#include "nsProfileLock.h"
#include "nsINIParser.h"
+enum ProfileStatus {
+ PROFILE_STATUS_OK,
+ PROFILE_STATUS_ACCESS_DENIED,
+ PROFILE_STATUS_READ_ONLY,
+ PROFILE_STATUS_IS_LOCKED,
+ PROFILE_STATUS_OTHER_ERROR
+};
+
class nsToolkitProfile final
: public nsIToolkitProfile,
public mozilla::LinkedListElement<RefPtr<nsToolkitProfile>> {
@@ -79,10 +87,13 @@ class nsToolkitProfileService final : public nsIToolkitProfileService {
nsresult SelectStartupProfile(int* aArgc, char* aArgv[], bool aIsResetting,
nsIFile** aRootDir, nsIFile** aLocalDir,
nsIToolkitProfile** aProfile, bool* aDidCreate,
- bool* aWasDefaultSelection);
+ bool* aWasDefaultSelection,
+ ProfileStatus& aProfileStatus);
nsresult CreateResetProfile(nsIToolkitProfile** aNewProfile);
nsresult ApplyResetProfile(nsIToolkitProfile* aOldProfile);
void CompleteStartup();
+ static ProfileStatus CheckProfileWriteAccess(nsIToolkitProfile* aProfile);
+ static ProfileStatus CheckProfileWriteAccess(nsIFile* aProfileDir);
private:
friend class nsToolkitProfile;
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 4afec36f57bc..3ba04d2b495c 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -1736,6 +1736,91 @@ nsresult LaunchChild(bool aBlankCommandLine) {
return NS_ERROR_LAUNCHED_CHILD_PROCESS;
}
+static nsresult GetOverrideStringBundleForLocale(nsIStringBundleService* aSBS,
+ const char* aTorbuttonURI,
+ const char* aLocale,
+ nsIStringBundle** aResult) {
+ NS_ENSURE_ARG(aSBS);
+ NS_ENSURE_ARG(aTorbuttonURI);
+ NS_ENSURE_ARG(aLocale);
+ NS_ENSURE_ARG(aResult);
+
+ const char* kFormatStr =
+ "jar:%s!/chrome/torbutton/locale/%s/torbutton.properties";
+ nsPrintfCString strBundleURL(kFormatStr, aTorbuttonURI, aLocale);
+ nsresult rv = aSBS->CreateBundle(strBundleURL.get(), aResult);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ // To ensure that we have a valid string bundle, try to retrieve a string
+ // that we know exists.
+ nsAutoString val;
+ rv = (*aResult)->GetStringFromName("profileProblemTitle", val);
+ if (!NS_SUCCEEDED(rv)) *aResult = nullptr; // No good. Discard it.
+
+ return rv;
+}
+
+static void GetOverrideStringBundle(nsIStringBundleService* aSBS,
+ nsIStringBundle** aResult) {
+ if (!aSBS || !aResult) return;
+
+ *aResult = nullptr;
+
+ // Build Torbutton file URI string by starting from GREDir.
+ RefPtr<nsXREDirProvider> dirProvider = nsXREDirProvider::GetSingleton();
+ if (!dirProvider) return;
+
+ nsCOMPtr<nsIFile> greDir = dirProvider->GetGREDir();
+ if (!greDir) return;
+
+ // Create file URI, extract as string, and append omni.ja relative path.
+ nsCOMPtr<nsIURI> uri;
+ nsAutoCString uriString;
+ if (NS_FAILED(NS_NewFileURI(getter_AddRefs(uri), greDir)) ||
+ NS_FAILED(uri->GetSpec(uriString))) {
+ return;
+ }
+
+ uriString.Append("omni.ja");
+
+ nsAutoCString userAgentLocale;
+ if (!NS_SUCCEEDED(
+ Preferences::GetCString("intl.locale.requested", userAgentLocale))) {
+ return;
+ }
+
+ nsresult rv = GetOverrideStringBundleForLocale(
+ aSBS, uriString.get(), userAgentLocale.get(), aResult);
+ if (NS_FAILED(rv)) {
+ // Try again using base locale, e.g., "en" vs. "en-US".
+ int16_t offset = userAgentLocale.FindChar('-', 1);
+ if (offset > 0) {
+ nsAutoCString shortLocale(Substring(userAgentLocale, 0, offset));
+ rv = GetOverrideStringBundleForLocale(aSBS, uriString.get(),
+ shortLocale.get(), aResult);
+ }
+ }
+}
+
+static nsresult GetFormattedString(nsIStringBundle* aOverrideBundle,
+ nsIStringBundle* aMainBundle,
+ const char* aName,
+ const nsTArray<nsString>& aParams,
+ nsAString& aResult) {
+ NS_ENSURE_ARG(aName);
+
+ nsresult rv = NS_ERROR_FAILURE;
+ if (aOverrideBundle) {
+ rv = aOverrideBundle->FormatStringFromName(aName, aParams, aResult);
+ }
+
+ // If string was not found in override bundle, use main (browser) bundle.
+ if (NS_FAILED(rv) && aMainBundle)
+ rv = aMainBundle->FormatStringFromName(aName, aParams, aResult);
+
+ return rv;
+}
+
static const char kProfileProperties[] =
"chrome://mozapps/locale/profile/profileSelection.properties";
@@ -1784,7 +1869,7 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
sbs->CreateBundle(kProfileProperties, getter_AddRefs(sb));
NS_ENSURE_TRUE_LOG(sbs, NS_ERROR_FAILURE);
- NS_ConvertUTF8toUTF16 appName(gAppData->name);
+ NS_ConvertUTF8toUTF16 appName(MOZ_APP_DISPLAYNAME);
AutoTArray<nsString, 2> params = {appName, appName};
// profileMissing
@@ -1806,11 +1891,12 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
}
}
-static ReturnAbortOnError ProfileLockedDialog(nsIFile* aProfileDir,
- nsIFile* aProfileLocalDir,
- nsIProfileUnlocker* aUnlocker,
- nsINativeAppSupport* aNative,
- nsIProfileLock** aResult) {
+static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
+ nsIFile* aProfileLocalDir,
+ ProfileStatus aStatus,
+ nsIProfileUnlocker* aUnlocker,
+ nsINativeAppSupport* aNative,
+ nsIProfileLock** aResult) {
nsresult rv;
bool exists;
@@ -1838,24 +1924,39 @@ static ReturnAbortOnError ProfileLockedDialog(nsIFile* aProfileDir,
sbs->CreateBundle(kProfileProperties, getter_AddRefs(sb));
NS_ENSURE_TRUE_LOG(sbs, NS_ERROR_FAILURE);
- NS_ConvertUTF8toUTF16 appName(gAppData->name);
+ nsCOMPtr<nsIStringBundle> overrideSB;
+ GetOverrideStringBundle(sbs, getter_AddRefs(overrideSB));
+
+ NS_ConvertUTF8toUTF16 appName(MOZ_APP_DISPLAYNAME);
AutoTArray<nsString, 3> params = {appName, appName, appName};
nsAutoString killMessage;
#ifndef XP_MACOSX
- rv = sb->FormatStringFromName(
- aUnlocker ? "restartMessageUnlocker" : "restartMessageNoUnlocker2",
- params, killMessage);
+ static const char kRestartUnlocker[] = "restartMessageUnlocker";
+ static const char kRestartNoUnlocker[] = "restartMessageNoUnlocker2";
+ static const char kReadOnly[] = "profileReadOnly";
#else
- rv = sb->FormatStringFromName(
- aUnlocker ? "restartMessageUnlockerMac" : "restartMessageNoUnlockerMac",
- params, killMessage);
+ static const char kRestartUnlocker[] = "restartMessageUnlockerMac";
+ static const char kRestartNoUnlocker[] = "restartMessageNoUnlockerMac";
+ static const char kReadOnly[] = "profileReadOnlyMac";
#endif
+ static const char kAccessDenied[] = "profileAccessDenied";
+
+ const char* errorKey = aUnlocker ? kRestartUnlocker : kRestartNoUnlocker;
+ if (PROFILE_STATUS_READ_ONLY == aStatus)
+ errorKey = kReadOnly;
+ else if (PROFILE_STATUS_ACCESS_DENIED == aStatus)
+ errorKey = kAccessDenied;
+ rv = GetFormattedString(overrideSB, sb, errorKey, params, killMessage);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
+ const char* titleKey = ((PROFILE_STATUS_READ_ONLY == aStatus) ||
+ (PROFILE_STATUS_ACCESS_DENIED == aStatus))
+ ? "profileProblemTitle"
+ : "restartTitle";
params.SetLength(1);
nsAutoString killTitle;
- rv = sb->FormatStringFromName("restartTitle", params, killTitle);
+ rv = sb->FormatStringFromName(titleKey, params, killTitle);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
if (gfxPlatform::IsHeadless()) {
@@ -2013,6 +2114,13 @@ static nsCOMPtr<nsIToolkitProfile> gResetOldProfile;
static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
nsIFile* aLocalDir, nsIToolkitProfile* aProfile,
nsIProfileLock** aResult) {
+ ProfileStatus status =
+ (aProfile ? nsToolkitProfileService::CheckProfileWriteAccess(aProfile)
+ : nsToolkitProfileService::CheckProfileWriteAccess(aRootDir));
+ if (PROFILE_STATUS_OK != status)
+ return ProfileErrorDialog(aRootDir, aLocalDir, status, nullptr, aNative,
+ aResult);
+
// If you close Firefox and very quickly reopen it, the old Firefox may
// still be closing down. Rather than immediately showing the
// "Firefox is running but is not responding" message, we spend a few
@@ -2039,7 +2147,8 @@ static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
} while (TimeStamp::Now() - start <
TimeDuration::FromSeconds(kLockRetrySeconds));
- return ProfileLockedDialog(aRootDir, aLocalDir, unlocker, aNative, aResult);
+ return ProfileErrorDialog(aRootDir, aLocalDir, PROFILE_STATUS_IS_LOCKED,
+ unlocker, aNative, aResult);
}
// Pick a profile. We need to end up with a profile root dir, local dir and
@@ -2054,7 +2163,8 @@ static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
static nsresult SelectProfile(nsToolkitProfileService* aProfileSvc,
nsINativeAppSupport* aNative, nsIFile** aRootDir,
nsIFile** aLocalDir, nsIToolkitProfile** aProfile,
- bool* aWasDefaultSelection) {
+ bool* aWasDefaultSelection,
+ nsIProfileLock** aResult) {
StartupTimeline::Record(StartupTimeline::SELECT_PROFILE);
nsresult rv;
@@ -2100,9 +2210,14 @@ static nsresult SelectProfile(nsToolkitProfileService* aProfileSvc,
// Ask the profile manager to select the profile directories to use.
bool didCreate = false;
- rv = aProfileSvc->SelectStartupProfile(&gArgc, gArgv, gDoProfileReset,
- aRootDir, aLocalDir, aProfile,
- &didCreate, aWasDefaultSelection);
+ ProfileStatus profileStatus = PROFILE_STATUS_OK;
+ rv = aProfileSvc->SelectStartupProfile(
+ &gArgc, gArgv, gDoProfileReset, aRootDir, aLocalDir, aProfile, &didCreate,
+ aWasDefaultSelection, profileStatus);
+ if (PROFILE_STATUS_OK != profileStatus) {
+ return ProfileErrorDialog(*aRootDir, *aLocalDir, profileStatus, nullptr,
+ aNative, aResult);
+ }
if (rv == NS_ERROR_SHOW_PROFILE_MANAGER) {
return ShowProfileManager(aProfileSvc, aNative);
@@ -3932,7 +4047,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
nsCOMPtr<nsIToolkitProfile> profile;
rv = SelectProfile(mProfileSvc, mNativeApp, getter_AddRefs(mProfD),
getter_AddRefs(mProfLD), getter_AddRefs(profile),
- &wasDefaultSelection);
+ &wasDefaultSelection, getter_AddRefs(mProfileLock));
if (rv == NS_ERROR_LAUNCHED_CHILD_PROCESS || rv == NS_ERROR_ABORT) {
*aExitFlag = true;
return 0;
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 9173: Change the default Firefox profile directory to be TBB-relative.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit dda26501518576e8211896729cf52a9d68f76130
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Oct 18 15:20:06 2013 -0400
Bug 9173: Change the default Firefox profile directory to be TBB-relative.
This should eliminate our need to rely on a wrapper script that
sets /Users/arthur and launches Firefox with -profile.
---
toolkit/profile/nsToolkitProfileService.cpp | 5 +-
toolkit/xre/nsAppRunner.cpp | 2 +-
toolkit/xre/nsConsoleWriter.cpp | 2 +-
toolkit/xre/nsXREDirProvider.cpp | 150 ++++++----------------------
toolkit/xre/nsXREDirProvider.h | 16 +--
xpcom/io/nsAppFileLocationProvider.cpp | 97 +++++++-----------
6 files changed, 84 insertions(+), 188 deletions(-)
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index dc4811313b5e..a3e50f8c00d3 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -723,10 +723,11 @@ nsresult nsToolkitProfileService::Init() {
NS_ASSERTION(gDirServiceProvider, "No dirserviceprovider!");
nsresult rv;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(mAppData));
+ rv = gDirServiceProvider->GetUserAppDataDirectory(getter_AddRefs(mAppData));
NS_ENSURE_SUCCESS(rv, rv);
- rv = nsXREDirProvider::GetUserLocalDataDirectory(getter_AddRefs(mTempData));
+ rv =
+ gDirServiceProvider->GetUserLocalDataDirectory(getter_AddRefs(mTempData));
NS_ENSURE_SUCCESS(rv, rv);
rv = mAppData->Clone(getter_AddRefs(mProfileDBFile));
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index ef72d1bf4fb2..4afec36f57bc 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -3187,7 +3187,7 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
if ((mAppData->flags & NS_XRE_ENABLE_CRASH_REPORTER) &&
NS_SUCCEEDED(CrashReporter::SetExceptionHandler(xreBinDirectory))) {
nsCOMPtr<nsIFile> file;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(file));
+ rv = mDirProvider.GetUserAppDataDirectory(getter_AddRefs(file));
if (NS_SUCCEEDED(rv)) {
CrashReporter::SetUserAppDataDirectory(file);
}
diff --git a/toolkit/xre/nsConsoleWriter.cpp b/toolkit/xre/nsConsoleWriter.cpp
index 0a2c0c342893..46735a293a00 100644
--- a/toolkit/xre/nsConsoleWriter.cpp
+++ b/toolkit/xre/nsConsoleWriter.cpp
@@ -29,7 +29,7 @@ void WriteConsoleLog() {
} else {
if (!gLogConsoleErrors) return;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(lfile));
+ rv = gDirServiceProvider->GetUserAppDataDirectory(getter_AddRefs(lfile));
if (NS_FAILED(rv)) return;
lfile->AppendNative(NS_LITERAL_CSTRING("console.log"));
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index 62b5694e99e8..accdcfe7c0b0 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -32,6 +32,7 @@
#include "nsArrayEnumerator.h"
#include "nsEnumeratorUtils.h"
#include "nsReadableUtils.h"
+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR
#include "SpecialSystemDirectory.h"
@@ -244,9 +245,6 @@ nsresult nsXREDirProvider::GetUserProfilesRootDir(nsIFile** aResult) {
nsresult rv = GetUserDataDirectory(getter_AddRefs(file), false);
if (NS_SUCCEEDED(rv)) {
-#if !defined(XP_UNIX) || defined(XP_MACOSX)
- rv = file->AppendNative(NS_LITERAL_CSTRING("Profiles"));
-#endif
// We must create the profile directory here if it does not exist.
nsresult tmp = EnsureDirectoryExists(file);
if (NS_FAILED(tmp)) {
@@ -262,9 +260,6 @@ nsresult nsXREDirProvider::GetUserProfilesLocalDir(nsIFile** aResult) {
nsresult rv = GetUserDataDirectory(getter_AddRefs(file), true);
if (NS_SUCCEEDED(rv)) {
-#if !defined(XP_UNIX) || defined(XP_MACOSX)
- rv = file->AppendNative(NS_LITERAL_CSTRING("Profiles"));
-#endif
// We must create the profile directory here if it does not exist.
nsresult tmp = EnsureDirectoryExists(file);
if (NS_FAILED(tmp)) {
@@ -1378,7 +1373,7 @@ nsresult nsXREDirProvider::SetUserDataProfileDirectory(nsCOMPtr<nsIFile>& aFile,
nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
bool aLocal) {
// Copied from nsAppFileLocationProvider (more or less)
- nsresult rv;
+ NS_ENSURE_ARG_POINTER(aFile);
nsCOMPtr<nsIFile> localDir;
if (aLocal && gDataDirHomeLocal) {
@@ -1388,81 +1383,39 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
return gDataDirHome->Clone(aFile);
}
-#if defined(XP_MACOSX)
- FSRef fsRef;
- OSType folderType;
- if (aLocal) {
- folderType = kCachedDataFolderType;
- } else {
-# ifdef MOZ_THUNDERBIRD
- folderType = kDomainLibraryFolderType;
-# else
- folderType = kApplicationSupportFolderType;
-# endif
- }
- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef);
- NS_ENSURE_FALSE(err, NS_ERROR_FAILURE);
-
- rv = NS_NewNativeLocalFile(EmptyCString(), true, getter_AddRefs(localDir));
+ nsresult rv = GetAppDir()->Clone(getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsILocalFileMac> dirFileMac = do_QueryInterface(localDir);
- NS_ENSURE_TRUE(dirFileMac, NS_ERROR_UNEXPECTED);
-
- rv = dirFileMac->InitWithFSRef(&fsRef);
- NS_ENSURE_SUCCESS(rv, rv);
+ int levelsToRemove = 1; // In FF21+, appDir points to browser subdirectory.
+#if defined(XP_MACOSX)
+ levelsToRemove += 2;
+#endif
+ while (localDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ rv = localDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
- localDir = dirFileMac;
-#elif defined(XP_IOS)
- nsAutoCString userDir;
- if (GetUIKitDirectory(aLocal, userDir)) {
- rv = NS_NewNativeLocalFile(userDir, true, getter_AddRefs(localDir));
- } else {
- rv = NS_ERROR_FAILURE;
- }
- NS_ENSURE_SUCCESS(rv, rv);
-#elif defined(XP_WIN)
- nsString path;
- if (aLocal) {
- rv = GetShellFolderPath(FOLDERID_LocalAppData, path);
- if (NS_FAILED(rv)) rv = GetRegWindowsAppDataFolder(aLocal, path);
- }
- if (!aLocal || NS_FAILED(rv)) {
- rv = GetShellFolderPath(FOLDERID_RoamingAppData, path);
- if (NS_FAILED(rv)) {
- if (!aLocal) rv = GetRegWindowsAppDataFolder(aLocal, path);
- }
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = localDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ localDir = parentDir;
+ if (didRemove) --levelsToRemove;
}
- NS_ENSURE_SUCCESS(rv, rv);
- rv = NS_NewLocalFile(path, true, getter_AddRefs(localDir));
-#elif defined(XP_UNIX)
- const char* homeDir = getenv("HOME");
- if (!homeDir || !*homeDir) return NS_ERROR_FAILURE;
+ if (!localDir) return NS_ERROR_FAILURE;
-# ifdef ANDROID /* We want (ProfD == ProfLD) on Android. */
- aLocal = false;
-# endif
+ rv = localDir->AppendRelativeNativePath(
+ NS_LITERAL_CSTRING("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
+ "Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+ NS_ENSURE_SUCCESS(rv, rv);
if (aLocal) {
- // If $XDG_CACHE_HOME is defined use it, otherwise use $HOME/.cache.
- const char* cacheHome = getenv("XDG_CACHE_HOME");
- if (cacheHome && *cacheHome) {
- rv = NS_NewNativeLocalFile(nsDependentCString(cacheHome), true,
- getter_AddRefs(localDir));
- } else {
- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
- getter_AddRefs(localDir));
- if (NS_SUCCEEDED(rv))
- rv = localDir->AppendNative(NS_LITERAL_CSTRING(".cache"));
- }
- } else {
- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
- getter_AddRefs(localDir));
+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Caches"));
+ NS_ENSURE_SUCCESS(rv, rv);
}
-#else
-# error "Don't know how to get product dir on your platform"
-#endif
NS_IF_ADDREF(*aFile = localDir);
return rv;
@@ -1645,39 +1598,23 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
}
nsAutoCString profile;
- nsAutoCString appName;
- nsAutoCString vendor;
if (gAppData->profile) {
profile = gAppData->profile;
- } else {
- appName = gAppData->name;
- vendor = gAppData->vendor;
}
- nsresult rv = NS_OK;
+ nsresult rv = NS_ERROR_FAILURE;
#if defined(XP_MACOSX)
if (!profile.IsEmpty()) {
rv = AppendProfileString(aFile, profile.get());
- } else {
- // Note that MacOS ignores the vendor when creating the profile hierarchy -
- // all application preferences directories live alongside one another in
- // ~/Library/Application Support/
- rv = aFile->AppendNative(appName);
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#elif defined(XP_WIN)
if (!profile.IsEmpty()) {
rv = AppendProfileString(aFile, profile.get());
- } else {
- if (!vendor.IsEmpty()) {
- rv = aFile->AppendNative(vendor);
- NS_ENSURE_SUCCESS(rv, rv);
- }
- rv = aFile->AppendNative(appName);
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#elif defined(ANDROID)
// The directory used for storing profiles
@@ -1687,11 +1624,6 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
rv = aFile->AppendNative(nsDependentCString("mozilla"));
NS_ENSURE_SUCCESS(rv, rv);
#elif defined(XP_UNIX)
- nsAutoCString folder;
- // Make it hidden (by starting with "."), except when local (the
- // profile is already under ~/.cache or XDG_CACHE_HOME).
- if (!aLocal) folder.Assign('.');
-
if (!profile.IsEmpty()) {
// Skip any leading path characters
const char* profileStart = profile.get();
@@ -1699,32 +1631,16 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
// On the off chance that someone wanted their folder to be hidden don't
// let it become ".."
- if (*profileStart == '.' && !aLocal) profileStart++;
+ if (*profileStart == '.') profileStart++;
+ // Make it hidden (by starting with ".").
+ nsAutoCString folder(".");
folder.Append(profileStart);
ToLowerCase(folder);
rv = AppendProfileString(aFile, folder.BeginReading());
- } else {
- if (!vendor.IsEmpty()) {
- folder.Append(vendor);
- ToLowerCase(folder);
-
- rv = aFile->AppendNative(folder);
- NS_ENSURE_SUCCESS(rv, rv);
-
- folder.Truncate();
- }
-
- // This can be the case in tests.
- if (!appName.IsEmpty()) {
- folder.Append(appName);
- ToLowerCase(folder);
-
- rv = aFile->AppendNative(folder);
- }
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#else
# error "Don't know how to get profile path on your platform"
diff --git a/toolkit/xre/nsXREDirProvider.h b/toolkit/xre/nsXREDirProvider.h
index e55b4e153c56..b9678d4ec577 100644
--- a/toolkit/xre/nsXREDirProvider.h
+++ b/toolkit/xre/nsXREDirProvider.h
@@ -63,15 +63,19 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
void DoShutdown();
- static nsresult GetUserAppDataDirectory(nsIFile** aFile) {
+ nsresult GetUserAppDataDirectory(nsIFile** aFile) {
return GetUserDataDirectory(aFile, false);
}
- static nsresult GetUserLocalDataDirectory(nsIFile** aFile) {
+ nsresult GetUserLocalDataDirectory(nsIFile** aFile) {
return GetUserDataDirectory(aFile, true);
}
// GetUserDataDirectory gets the profile path from gAppData.
- static nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal);
+
+ // This function now calls GetAppDir(), so it cannot be static anymore.
+ // The same happens with all the functions (in)directly calling this one (the
+ // rest of Get*Directory functions in this file)
+ nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal);
/* make sure you clone it, if you need to do stuff to it */
nsIFile* GetGREDir() { return mGREDir; }
@@ -112,9 +116,9 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
protected:
nsresult GetFilesInternal(const char* aProperty,
nsISimpleEnumerator** aResult);
- static nsresult GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal);
- static nsresult GetSysUserExtensionsDirectory(nsIFile** aFile);
- static nsresult GetSysUserExtensionsDevDirectory(nsIFile** aFile);
+ nsresult GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal);
+ nsresult GetSysUserExtensionsDirectory(nsIFile** aFile);
+ nsresult GetSysUserExtensionsDevDirectory(nsIFile** aFile);
#if defined(XP_UNIX) || defined(XP_MACOSX)
static nsresult GetSystemExtensionsDirectory(nsIFile** aFile);
#endif
diff --git a/xpcom/io/nsAppFileLocationProvider.cpp b/xpcom/io/nsAppFileLocationProvider.cpp
index 915e8bc7361e..81551a8e3893 100644
--- a/xpcom/io/nsAppFileLocationProvider.cpp
+++ b/xpcom/io/nsAppFileLocationProvider.cpp
@@ -15,6 +15,7 @@
#include "nsSimpleEnumerator.h"
#include "prenv.h"
#include "nsCRT.h"
+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR
#if defined(MOZ_WIDGET_COCOA)
# include <Carbon/Carbon.h>
# include "nsILocalFileMac.h"
@@ -233,9 +234,8 @@ nsresult nsAppFileLocationProvider::CloneMozBinDirectory(nsIFile** aLocalFile) {
// GetProductDirectory - Gets the directory which contains the application data
// folder
//
-// UNIX : ~/.mozilla/
-// WIN : <Application Data folder on user's machine>\Mozilla
-// Mac : :Documents:Mozilla:
+// UNIX and WIN : <App Folder>/TorBrowser/Data/Browser
+// Mac : <App Folder>/../../TorBrowser/Data/Browser
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool aLocal) {
@@ -247,49 +247,45 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool exists;
nsCOMPtr<nsIFile> localDir;
-#if defined(MOZ_WIDGET_COCOA)
- FSRef fsRef;
- OSType folderType =
- aLocal ? (OSType)kCachedDataFolderType : (OSType)kDomainLibraryFolderType;
- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef);
- if (err) {
- return NS_ERROR_FAILURE;
+ rv = CloneMozBinDirectory(getter_AddRefs(localDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ int levelsToRemove = 1; // In FF21+, bin dir points to browser subdirectory.
+#if defined(XP_MACOSX)
+ levelsToRemove += 2;
+#endif
+ while (localDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ rv = localDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
+
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = localDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ localDir = parentDir;
+
+ if (didRemove) {
+ --levelsToRemove;
+ }
}
- NS_NewLocalFile(EmptyString(), true, getter_AddRefs(localDir));
+
if (!localDir) {
return NS_ERROR_FAILURE;
}
- nsCOMPtr<nsILocalFileMac> localDirMac(do_QueryInterface(localDir));
- rv = localDirMac->InitWithFSRef(&fsRef);
- if (NS_FAILED(rv)) {
- return rv;
- }
-#elif defined(XP_WIN)
- nsCOMPtr<nsIProperties> directoryService =
- do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) {
- return rv;
- }
- const char* prop = aLocal ? NS_WIN_LOCAL_APPDATA_DIR : NS_WIN_APPDATA_DIR;
- rv = directoryService->Get(prop, NS_GET_IID(nsIFile),
- getter_AddRefs(localDir));
- if (NS_FAILED(rv)) {
- return rv;
- }
-#elif defined(XP_UNIX)
- rv = NS_NewNativeLocalFile(nsDependentCString(PR_GetEnv("HOME")), true,
- getter_AddRefs(localDir));
- if (NS_FAILED(rv)) {
- return rv;
- }
-#else
-# error dont_know_how_to_get_product_dir_on_your_platform
-#endif
- rv = localDir->AppendRelativeNativePath(DEFAULT_PRODUCT_DIR);
- if (NS_FAILED(rv)) {
- return rv;
+ rv = localDir->AppendRelativeNativePath(
+ NS_LITERAL_CSTRING("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
+ "Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ if (aLocal) {
+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Caches"));
+ NS_ENSURE_SUCCESS(rv, rv);
}
+
rv = localDir->Exists(&exists);
if (NS_SUCCEEDED(rv) && !exists) {
@@ -308,10 +304,6 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
//----------------------------------------------------------------------------------------
// GetDefaultUserProfileRoot - Gets the directory which contains each user
// profile dir
-//
-// UNIX : ~/.mozilla/
-// WIN : <Application Data folder on user's machine>\Mozilla\Profiles
-// Mac : :Documents:Mozilla:Profiles:
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetDefaultUserProfileRoot(
nsIFile** aLocalFile, bool aLocal) {
@@ -327,23 +319,6 @@ nsresult nsAppFileLocationProvider::GetDefaultUserProfileRoot(
return rv;
}
-#if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN)
- // These 3 platforms share this part of the path - do them as one
- rv = localDir->AppendRelativeNativePath(NS_LITERAL_CSTRING("Profiles"));
- if (NS_FAILED(rv)) {
- return rv;
- }
-
- bool exists;
- rv = localDir->Exists(&exists);
- if (NS_SUCCEEDED(rv) && !exists) {
- rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0775);
- }
- if (NS_FAILED(rv)) {
- return rv;
- }
-#endif
-
localDir.forget(aLocalFile);
return rv;
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 12974: Disable NTLM and Negotiate HTTP Auth
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 911a6aa6b1dc66b0d9a441695b17e6b59a55b612
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Aug 27 15:19:10 2014 -0700
Bug 12974: Disable NTLM and Negotiate HTTP Auth
This is technically an embargoed Mozilla bug, so I probably shouldn't provide
too many details.
Suffice to say that NTLM and Negotiate auth are bad for Tor users, and I doubt
very many (or any of them) actually need it.
The Mozilla bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1046421
---
extensions/auth/nsHttpNegotiateAuth.cpp | 4 ++++
netwerk/protocol/http/nsHttpNTLMAuth.cpp | 3 +++
2 files changed, 7 insertions(+)
diff --git a/extensions/auth/nsHttpNegotiateAuth.cpp b/extensions/auth/nsHttpNegotiateAuth.cpp
index 99720475b9dd..1c08fcf3da7e 100644
--- a/extensions/auth/nsHttpNegotiateAuth.cpp
+++ b/extensions/auth/nsHttpNegotiateAuth.cpp
@@ -152,6 +152,10 @@ nsHttpNegotiateAuth::ChallengeReceived(nsIHttpAuthenticableChannel* authChannel,
nsIAuthModule* rawModule = (nsIAuthModule*)*continuationState;
*identityInvalid = false;
+
+ /* Always fail Negotiate auth for Tor Browser. We don't need it. */
+ return NS_ERROR_ABORT;
+
if (rawModule) {
return NS_OK;
}
diff --git a/netwerk/protocol/http/nsHttpNTLMAuth.cpp b/netwerk/protocol/http/nsHttpNTLMAuth.cpp
index 0a30de051014..891aaadfd758 100644
--- a/netwerk/protocol/http/nsHttpNTLMAuth.cpp
+++ b/netwerk/protocol/http/nsHttpNTLMAuth.cpp
@@ -168,6 +168,9 @@ nsHttpNTLMAuth::ChallengeReceived(nsIHttpAuthenticableChannel* channel,
*identityInvalid = false;
+ /* Always fail Negotiate auth for Tor Browser. We don't need it. */
+ return NS_ERROR_ABORT;
+
// Start a new auth sequence if the challenge is exactly "NTLM".
// If native NTLM auth apis are available and enabled through prefs,
// try to use them.
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 13028: Prevent potential proxy bypass cases.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 391b408185a7432553f90b21d1d149b358f1be15
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Sep 29 14:30:19 2014 -0700
Bug 13028: Prevent potential proxy bypass cases.
It looks like these cases should only be invoked in the NSS command line
tools, and not the browser, but I decided to patch them anyway because there
literally is a maze of network function pointers being passed around, and it's
very hard to tell if some random code might not pass in the proper proxied
versions of the networking code here by accident.
---
security/nss/lib/certhigh/ocsp.c | 8 ++++++++
.../lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c | 21 +++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/security/nss/lib/certhigh/ocsp.c b/security/nss/lib/certhigh/ocsp.c
index cea8456606bf..86fa971cfbef 100644
--- a/security/nss/lib/certhigh/ocsp.c
+++ b/security/nss/lib/certhigh/ocsp.c
@@ -2932,6 +2932,14 @@ ocsp_ConnectToHost(const char *host, PRUint16 port)
PRNetAddr addr;
char *netdbbuf = NULL;
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted OSCP direct connect to %s, port %u\n", host,
+ port);
+ goto loser;
+#endif
+
sock = PR_NewTCPSocket();
if (sock == NULL)
goto loser;
diff --git a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
index e8698376b5be..85791d84a932 100644
--- a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
+++ b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
@@ -1334,6 +1334,13 @@ pkix_pl_Socket_Create(
plContext),
PKIX_COULDNOTCREATESOCKETOBJECT);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct socket connect\n");
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
+
socket->isServer = isServer;
socket->timeout = timeout;
socket->clientSock = NULL;
@@ -1433,6 +1440,13 @@ pkix_pl_Socket_CreateByName(
localCopyName = PL_strdup(serverName);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct connect to %s\n", serverName);
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
+
sepPtr = strchr(localCopyName, ':');
/* First strip off the portnum, if present, from the end of the name */
if (sepPtr) {
@@ -1582,6 +1596,13 @@ pkix_pl_Socket_CreateByHostAndPort(
PKIX_ENTER(SOCKET, "pkix_pl_Socket_CreateByHostAndPort");
PKIX_NULLCHECK_THREE(hostname, pStatus, pSocket);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct connect to %s, port %u\n", hostname,
+ portnum);
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
prstatus = PR_GetHostByName(hostname, buf, sizeof(buf), &hostent);
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 19121: reinstate the update.xml hash check
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit d1a8586f755f9b5bb4978ddc542c34d6f0bba945
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Apr 23 15:22:57 2018 -0400
Bug 19121: reinstate the update.xml hash check
Revert most changes from Mozilla Bug 1373267 "Remove hashFunction and
hashValue attributes from nsIUpdatePatch and code related to these
attributes." Changes to the tests were not reverted; the tests have
been changed significantly and we do not run automated updater tests
for Tor Browser at this time.
Also partial revert of commit f1241db6986e4b54473a1ed870f7584c75d51122.
Revert the nsUpdateService.js changes from Mozilla Bug 862173 "don't
verify mar file hash when using mar signing to verify the mar file
(lessens main thread I/O)."
Changes to the tests were not reverted; the tests have been changed
significantly and we do not run automated updater tests for
Tor Browser at this time.
We kept the addition to the AppConstants API in case other JS code
references it in the future.
---
toolkit/modules/AppConstants.jsm | 7 ++++
toolkit/mozapps/update/UpdateService.jsm | 63 ++++++++++++++++++++++++++++-
toolkit/mozapps/update/UpdateTelemetry.jsm | 1 +
toolkit/mozapps/update/nsIUpdateService.idl | 11 +++++
4 files changed, 81 insertions(+), 1 deletion(-)
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index cd8ca2659626..84516f0d4c66 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -212,6 +212,13 @@ this.AppConstants = Object.freeze({
false,
#endif
+ MOZ_VERIFY_MAR_SIGNATURE:
+#ifdef MOZ_VERIFY_MAR_SIGNATURE
+ true,
+#else
+ false,
+#endif
+
MOZ_MAINTENANCE_SERVICE:
#ifdef MOZ_MAINTENANCE_SERVICE
true,
diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm
index 1dc86a073646..ead961ab5252 100644
--- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -742,6 +742,20 @@ function LOG(string) {
}
}
+/**
+ * Convert a string containing binary values to hex.
+ */
+function binaryToHex(input) {
+ var result = "";
+ for (var i = 0; i < input.length; ++i) {
+ var hex = input.charCodeAt(i).toString(16);
+ if (hex.length == 1)
+ hex = "0" + hex;
+ result += hex;
+ }
+ return result;
+}
+
/**
* Gets the specified directory at the specified hierarchy under the
* update root directory and creates it if it doesn't exist.
@@ -1534,6 +1548,8 @@ function UpdatePatch(patch) {
}
break;
case "finalURL":
+ case "hashFunction":
+ case "hashValue":
case "state":
case "type":
case "URL":
@@ -1553,6 +1569,8 @@ UpdatePatch.prototype = {
// over writing nsIUpdatePatch attributes.
_attrNames: [
"errorCode",
+ "hashFunction",
+ "hashValue",
"finalURL",
"selected",
"size",
@@ -1566,6 +1584,8 @@ UpdatePatch.prototype = {
*/
serialize: function UpdatePatch_serialize(updates) {
var patch = updates.createElementNS(URI_UPDATE_NS, "patch");
+ patch.setAttribute("hashFunction", this.hashFunction);
+ patch.setAttribute("hashValue", this.hashValue);
patch.setAttribute("size", this.size);
patch.setAttribute("type", this.type);
patch.setAttribute("URL", this.URL);
@@ -4315,7 +4335,42 @@ Downloader.prototype = {
}
LOG("Downloader:_verifyDownload downloaded size == expected size.");
- return true;
+ let fileStream = Cc["@mozilla.org/network/file-input-stream;1"].
+ createInstance(Ci.nsIFileInputStream);
+ fileStream.init(destination, FileUtils.MODE_RDONLY, FileUtils.PERMS_FILE, 0);
+
+ let digest;
+ try {
+ let hash = Cc["@mozilla.org/security/hash;1"].
+ createInstance(Ci.nsICryptoHash);
+ var hashFunction = Ci.nsICryptoHash[this._patch.hashFunction.toUpperCase()];
+ if (hashFunction == undefined) {
+ throw Cr.NS_ERROR_UNEXPECTED;
+ }
+ hash.init(hashFunction);
+ hash.updateFromStream(fileStream, -1);
+ // NOTE: For now, we assume that the format of _patch.hashValue is hex
+ // encoded binary (such as what is typically output by programs like
+ // sha1sum). In the future, this may change to base64 depending on how
+ // we choose to compute these hashes.
+ digest = binaryToHex(hash.finish(false));
+ } catch (e) {
+ LOG("Downloader:_verifyDownload - failed to compute hash of the " +
+ "downloaded update archive");
+ digest = "";
+ }
+
+ fileStream.close();
+
+ if (digest == this._patch.hashValue.toLowerCase()) {
+ LOG("Downloader:_verifyDownload hashes match.");
+ return true;
+ }
+
+ LOG("Downloader:_verifyDownload hashes do not match. ");
+ AUSTLMY.pingDownloadCode(this.isCompleteUpdate,
+ AUSTLMY.DWNLD_ERR_VERIFY_NO_HASH_MATCH);
+ return false;
},
/**
@@ -4889,6 +4944,9 @@ Downloader.prototype = {
" is higher than patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_LARGER
@@ -4907,6 +4965,9 @@ Downloader.prototype = {
" is not equal to expected patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_NOT_EQUAL
diff --git a/toolkit/mozapps/update/UpdateTelemetry.jsm b/toolkit/mozapps/update/UpdateTelemetry.jsm
index 6f560b07cfe7..b6c71b2ef8d6 100644
--- a/toolkit/mozapps/update/UpdateTelemetry.jsm
+++ b/toolkit/mozapps/update/UpdateTelemetry.jsm
@@ -180,6 +180,7 @@ var AUSTLMY = {
DWNLD_ERR_VERIFY_NO_REQUEST: 13,
DWNLD_ERR_VERIFY_PATCH_SIZE_NOT_EQUAL: 14,
DWNLD_ERR_WRITE_FAILURE: 15,
+ DWNLD_ERR_VERIFY_NO_HASH_MATCH: 16,
// Temporary failure code to see if there are failures without an update phase
DWNLD_UNKNOWN_PHASE_ERR_WRITE_FAILURE: 40,
diff --git a/toolkit/mozapps/update/nsIUpdateService.idl b/toolkit/mozapps/update/nsIUpdateService.idl
index 5e4cc63c3547..47bb27b17d41 100644
--- a/toolkit/mozapps/update/nsIUpdateService.idl
+++ b/toolkit/mozapps/update/nsIUpdateService.idl
@@ -39,6 +39,17 @@ interface nsIUpdatePatch : nsISupports
*/
attribute AString finalURL;
+ /**
+ * The hash function to use when determining this file's integrity
+ */
+ attribute AString hashFunction;
+
+ /**
+ * The value of the hash function named above that should be computed if
+ * this file is not corrupt.
+ */
+ attribute AString hashValue;
+
/**
* The size of this file, in bytes.
*/
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 13252: Do not store data in the app bundle
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit ae6bfc0fc454ace95f1c64e8d4e15952cc902811
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Mar 18 14:20:02 2016 -0400
Bug 13252: Do not store data in the app bundle
When --enable-tor-browser-data-outside-app-dir is enabled,
all user data is stored in a directory named
TorBrowser-Data which is located next to the application directory.
Display an informative error message if the TorBrowser-Data
directory cannot be created due to an "access denied" or a
"read only volume" error.
On Mac OS, add support for the --invisible command line option which
is used by the meek-http-helper to avoid showing an icon for the
helper browser on the dock.
---
toolkit/xre/nsAppRunner.cpp | 76 +++++++++++++++---
toolkit/xre/nsXREDirProvider.cpp | 43 +++++-----
toolkit/xre/nsXREDirProvider.h | 6 ++
xpcom/io/TorFileUtils.cpp | 142 +++++++++++++++++++++++++++++++++
xpcom/io/TorFileUtils.h | 33 ++++++++
xpcom/io/moz.build | 5 ++
xpcom/io/nsAppFileLocationProvider.cpp | 53 +++++-------
7 files changed, 290 insertions(+), 68 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 3ba04d2b495c..8e76213e7923 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -1891,6 +1891,8 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
}
}
+// If aUnlocker is NULL, it is also OK for the following arguments to be NULL:
+// aProfileDir, aProfileLocalDir, aResult.
static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
nsIFile* aProfileLocalDir,
ProfileStatus aStatus,
@@ -1899,17 +1901,19 @@ static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
nsIProfileLock** aResult) {
nsresult rv;
- bool exists;
- aProfileDir->Exists(&exists);
- if (!exists) {
- return ProfileMissingDialog(aNative);
+ if (aProfileDir) {
+ bool exists;
+ aProfileDir->Exists(&exists);
+ if (!exists) {
+ return ProfileMissingDialog(aNative);
+ }
}
ScopedXPCOMStartup xpcom;
rv = xpcom.Initialize();
NS_ENSURE_SUCCESS(rv, rv);
- mozilla::Telemetry::WriteFailedProfileLock(aProfileDir);
+ if (aProfileDir) mozilla::Telemetry::WriteFailedProfileLock(aProfileDir);
rv = xpcom.SetWindowCreator(aNative);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
@@ -1999,7 +2003,8 @@ static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
}
} else {
#ifdef MOZ_WIDGET_ANDROID
- if (java::GeckoAppShell::UnlockProfile()) {
+ if (aProfileDir && aProfileLocalDir && aResult &&
+ java::GeckoAppShell::UnlockProfile()) {
return NS_LockProfilePath(aProfileDir, aProfileLocalDir, nullptr,
aResult);
}
@@ -2107,6 +2112,23 @@ static ReturnAbortOnError ShowProfileManager(
return LaunchChild(false);
}
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+static ProfileStatus CheckTorBrowserDataWriteAccess(nsIFile* aAppDir) {
+ // Check whether we can write to the directory that will contain
+ // TorBrowser-Data.
+ nsCOMPtr<nsIFile> tbDataDir;
+ RefPtr<nsXREDirProvider> dirProvider = nsXREDirProvider::GetSingleton();
+ if (!dirProvider) return PROFILE_STATUS_OTHER_ERROR;
+ nsresult rv =
+ dirProvider->GetTorBrowserUserDataDir(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, PROFILE_STATUS_OTHER_ERROR);
+ nsCOMPtr<nsIFile> tbDataDirParent;
+ rv = tbDataDir->GetParent(getter_AddRefs(tbDataDirParent));
+ NS_ENSURE_SUCCESS(rv, PROFILE_STATUS_OTHER_ERROR);
+ return nsToolkitProfileService::CheckProfileWriteAccess(tbDataDirParent);
+}
+#endif
+
static bool gDoMigration = false;
static bool gDoProfileReset = false;
static nsCOMPtr<nsIToolkitProfile> gResetOldProfile;
@@ -3183,6 +3205,14 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
if (PR_GetEnv("XRE_MAIN_BREAK")) NS_BREAK();
#endif
+#if defined(XP_MACOSX) && defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+ bool hideDockIcon = (CheckArg("invisible") == ARG_FOUND);
+ if (hideDockIcon) {
+ ProcessSerialNumber psn = {0, kCurrentProcess};
+ TransformProcessType(&psn, kProcessTransformToBackgroundApplication);
+ }
+#endif
+
IncreaseDescriptorLimits();
#ifdef USE_GLX_TEST
@@ -4031,7 +4061,34 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
return 0;
}
+#if (defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)) || \
+ defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+ nsCOMPtr<nsIFile> exeFile, exeDir;
+ bool persistent;
+ rv = mDirProvider.GetFile(XRE_EXECUTABLE_FILE, &persistent,
+ getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, 1);
+ rv = exeFile->GetParent(getter_AddRefs(exeDir));
+ NS_ENSURE_SUCCESS(rv, 1);
+#endif
+
rv = NS_NewToolkitProfileService(getter_AddRefs(mProfileSvc));
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ if (NS_FAILED(rv)) {
+ // NS_NewToolkitProfileService() returns a generic NS_ERROR_FAILURE error
+ // if creation of the TorBrowser-Data directory fails due to access denied
+ // or because of a read-only disk volume. Do an extra check here to detect
+ // these errors so we can display an informative error message.
+ ProfileStatus status = CheckTorBrowserDataWriteAccess(exeDir);
+ if ((PROFILE_STATUS_ACCESS_DENIED == status) ||
+ (PROFILE_STATUS_READ_ONLY == status)) {
+ ProfileErrorDialog(nullptr, nullptr, status, nullptr, mNativeApp,
+ nullptr);
+ return 1;
+ }
+ }
+ #endif
+
if (rv == NS_ERROR_FILE_ACCESS_DENIED) {
PR_fprintf(PR_STDERR,
"Error: Access was denied while trying to open files in "
@@ -4100,7 +4157,6 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
#if defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)
// Check for and process any available updates
nsCOMPtr<nsIFile> updRoot;
- bool persistent;
rv = mDirProvider.GetFile(XRE_UPDATE_ROOT_DIR, &persistent,
getter_AddRefs(updRoot));
// XRE_UPDATE_ROOT_DIR may fail. Fallback to appDir if failed
@@ -4136,12 +4192,6 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
if (CheckArg("test-process-updates")) {
SaveToEnv("MOZ_TEST_PROCESS_UPDATES=1");
}
- nsCOMPtr<nsIFile> exeFile, exeDir;
- rv = mDirProvider.GetFile(XRE_EXECUTABLE_FILE, &persistent,
- getter_AddRefs(exeFile));
- NS_ENSURE_SUCCESS(rv, 1);
- rv = exeFile->GetParent(getter_AddRefs(exeDir));
- NS_ENSURE_SUCCESS(rv, 1);
ProcessUpdates(mDirProvider.GetGREDir(), exeDir, updRoot, gRestartArgc,
gRestartArgv, mAppData->version);
if (EnvHasValue("MOZ_TEST_PROCESS_UPDATES")) {
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index accdcfe7c0b0..09f34911d3cb 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -46,6 +46,8 @@
#include "mozilla/Telemetry.h"
#include "nsPrintfCString.h"
+#include "TorFileUtils.h"
+
#include <stdlib.h>
#ifdef XP_WIN
@@ -1383,34 +1385,18 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
return gDataDirHome->Clone(aFile);
}
- nsresult rv = GetAppDir()->Clone(getter_AddRefs(localDir));
+ nsresult rv = GetTorBrowserUserDataDir(getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- int levelsToRemove = 1; // In FF21+, appDir points to browser subdirectory.
-#if defined(XP_MACOSX)
- levelsToRemove += 2;
-#endif
- while (localDir && (levelsToRemove > 0)) {
- // When crawling up the hierarchy, components named "." do not count.
- nsAutoCString removedName;
- rv = localDir->GetNativeLeafName(removedName);
- NS_ENSURE_SUCCESS(rv, rv);
- bool didRemove = !removedName.Equals(".");
-
- // Remove a directory component.
- nsCOMPtr<nsIFile> parentDir;
- rv = localDir->GetParent(getter_AddRefs(parentDir));
- NS_ENSURE_SUCCESS(rv, rv);
- localDir = parentDir;
- if (didRemove) --levelsToRemove;
- }
-
- if (!localDir) return NS_ERROR_FAILURE;
-
+#if !defined(ANDROID)
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Browser"));
+#else
rv = localDir->AppendRelativeNativePath(
- NS_LITERAL_CSTRING("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
- "Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+ NS_LITERAL_CSTRING("Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+#endif
NS_ENSURE_SUCCESS(rv, rv);
+#endif
if (aLocal) {
rv = localDir->AppendNative(NS_LITERAL_CSTRING("Caches"));
@@ -1516,6 +1502,15 @@ nsresult nsXREDirProvider::GetUserDataDirectory(nsIFile** aFile, bool aLocal) {
return NS_OK;
}
+nsresult nsXREDirProvider::GetTorBrowserUserDataDir(nsIFile** aFile) {
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> exeFile;
+ bool per = false;
+ nsresult rv = GetFile(XRE_EXECUTABLE_FILE, &per, getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+ return TorBrowser_GetUserDataDir(exeFile, aFile);
+}
+
nsresult nsXREDirProvider::EnsureDirectoryExists(nsIFile* aDirectory) {
nsresult rv = aDirectory->Create(nsIFile::DIRECTORY_TYPE, 0700);
diff --git a/toolkit/xre/nsXREDirProvider.h b/toolkit/xre/nsXREDirProvider.h
index b9678d4ec577..2aa2face5974 100644
--- a/toolkit/xre/nsXREDirProvider.h
+++ b/toolkit/xre/nsXREDirProvider.h
@@ -113,6 +113,12 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
*/
nsresult GetProfileDir(nsIFile** aResult);
+ /**
+ * Get the TorBrowser user data directory by calling the
+ * TorBrowser_GetUserDataDir() utility function.
+ */
+ nsresult GetTorBrowserUserDataDir(nsIFile** aFile);
+
protected:
nsresult GetFilesInternal(const char* aProperty,
nsISimpleEnumerator** aResult);
diff --git a/xpcom/io/TorFileUtils.cpp b/xpcom/io/TorFileUtils.cpp
new file mode 100644
index 000000000000..bddf8d7bbd95
--- /dev/null
+++ b/xpcom/io/TorFileUtils.cpp
@@ -0,0 +1,142 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "TorFileUtils.h"
+#include "nsString.h"
+#ifdef MOZ_WIDGET_COCOA
+#include <Carbon/Carbon.h>
+#include "nsILocalFileMac.h"
+#endif
+
+static nsresult GetAppRootDir(nsIFile *aExeFile, nsIFile** aFile);
+
+//-----------------------------------------------------------------------------
+nsresult
+TorBrowser_GetUserDataDir(nsIFile *aExeFile, nsIFile** aFile)
+{
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> tbDataDir;
+
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorBrowser-Data"));
+ nsCOMPtr<nsIFile> appRootDir;
+ nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(appRootDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+#ifndef XP_MACOSX
+ // On all platforms except Mac OS, we always operate in a "portable" mode
+ // where the TorBrowser-Data directory is located next to the application.
+ rv = appRootDir->GetParent(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+#else
+ // For Mac OS, determine whether we should store user data in the OS's
+ // standard location (i.e., under ~/Library/Application Support). We use
+ // the OS location if (1) the application is installed in a directory whose
+ // path contains "/Applications" or (2) the TorBrowser-Data directory does
+ // not exist and cannot be created (which probably means we lack write
+ // permission to the directory that contains the application).
+ nsAutoString appRootPath;
+ rv = appRootDir->GetPath(appRootPath);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool useOSLocation = (appRootPath.Find("/Applications",
+ true /* ignore case */) >= 0);
+ if (!useOSLocation) {
+ // We hope to use the portable (aka side-by-side) approach, but before we
+ // commit to that, let's ensure that we can create the TorBrowser-Data
+ // directory. If it already exists, we will try to use it; if not and we
+ // fail to create it, we will switch to ~/Library/Application Support.
+ rv = appRootDir->GetParent(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool exists = false;
+ rv = tbDataDir->Exists(&exists);
+ if (NS_SUCCEEDED(rv) && !exists)
+ rv = tbDataDir->Create(nsIFile::DIRECTORY_TYPE, 0700);
+ useOSLocation = NS_FAILED(rv);
+ }
+
+ if (useOSLocation) {
+ // We are using ~/Library/Application Support/TorBrowser-Data. We do not
+ // need to create that directory here because the code in nsXREDirProvider
+ // will do so (and the user should always have write permission for
+ // ~/Library/Application Support; if they do not we have no more options).
+ FSRef fsRef;
+ OSErr err = ::FSFindFolder(kUserDomain, kApplicationSupportFolderType,
+ kCreateFolder, &fsRef);
+ NS_ENSURE_FALSE(err, NS_ERROR_FAILURE);
+ // To convert the FSRef returned by FSFindFolder() into an nsIFile that
+ // points to ~/Library/Application Support, we first create an empty
+ // nsIFile object (no path) and then use InitWithFSRef() to set the
+ // path.
+ rv = NS_NewNativeLocalFile(EmptyCString(), true,
+ getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ nsCOMPtr<nsILocalFileMac> dirFileMac = do_QueryInterface(tbDataDir);
+ if (!dirFileMac)
+ return NS_ERROR_UNEXPECTED;
+ rv = dirFileMac->InitWithFSRef(&fsRef);
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
+#endif
+
+#elif defined(ANDROID)
+ // Tor Browser Android stores data in the app home directory.
+ const char* homeDir = getenv("HOME");
+ if (!homeDir || !*homeDir)
+ return NS_ERROR_FAILURE;
+ nsresult rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
+ getter_AddRefs(tbDataDir));
+#else
+ // User data is embedded within the application directory (i.e.,
+ // TOR_BROWSER_DATA_OUTSIDE_APP_DIR is not defined).
+ nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(NS_LITERAL_CSTRING("TorBrowser"));
+ NS_ENSURE_SUCCESS(rv, rv);
+#endif
+
+ tbDataDir.forget(aFile);
+ return NS_OK;
+}
+
+static nsresult
+GetAppRootDir(nsIFile *aExeFile, nsIFile** aFile)
+{
+ NS_ENSURE_ARG_POINTER(aExeFile);
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> appRootDir = aExeFile;
+
+ int levelsToRemove = 1; // Remove firefox (the executable file).
+#if defined(XP_MACOSX)
+ levelsToRemove += 2; // On Mac OS, we must also remove Contents/MacOS.
+#endif
+ while (appRootDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ nsresult rv = appRootDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
+
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = appRootDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ appRootDir = parentDir;
+
+ if (didRemove)
+ --levelsToRemove;
+ }
+
+ if (!appRootDir)
+ return NS_ERROR_FAILURE;
+
+ appRootDir.forget(aFile);
+ return NS_OK;
+}
diff --git a/xpcom/io/TorFileUtils.h b/xpcom/io/TorFileUtils.h
new file mode 100644
index 000000000000..d5e86abf9685
--- /dev/null
+++ b/xpcom/io/TorFileUtils.h
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef TorFileUtils_h__
+#define TorFileUtils_h__
+
+#include "nsIFile.h"
+
+/**
+ * TorBrowser_GetUserDataDir
+ *
+ * Retrieve the Tor Browser user data directory.
+ * When built with --enable-tor-browser-data-outside-app-dir, the directory
+ * is next to the application directory, except on Mac OS where it may be
+ * there or it may be at ~/Library/Application Support/TorBrowser-Data (the
+ * latter location is used if the .app bundle is in a directory whose path
+ * contains /Applications or if we lack write access to the directory that
+ * contains the .app).
+ * When built without --enable-tor-browser-data-outside-app-dir, this
+ * directory is TorBrowser.app/TorBrowser.
+ *
+ * @param aExeFile The firefox executable.
+ * @param aFile Out parameter that is set to the Tor Browser user data
+ * directory.
+ * @return NS_OK on success. Error otherwise.
+ */
+extern nsresult
+TorBrowser_GetUserDataDir(nsIFile *aExeFile, nsIFile** aFile);
+
+#endif // !TorFileUtils_h__
diff --git a/xpcom/io/moz.build b/xpcom/io/moz.build
index a165b491bc56..b0eb74f4c56d 100644
--- a/xpcom/io/moz.build
+++ b/xpcom/io/moz.build
@@ -86,6 +86,7 @@ EXPORTS += [
'nsUnicharInputStream.h',
'nsWildCard.h',
'SpecialSystemDirectory.h',
+ 'TorFileUtils.h',
]
EXPORTS.mozilla += [
@@ -135,6 +136,10 @@ UNIFIED_SOURCES += [
'SpecialSystemDirectory.cpp',
]
+SOURCES += [
+ 'TorFileUtils.cpp',
+]
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
SOURCES += [
'CocoaFileUtils.mm',
diff --git a/xpcom/io/nsAppFileLocationProvider.cpp b/xpcom/io/nsAppFileLocationProvider.cpp
index 81551a8e3893..9f95e5cbec2d 100644
--- a/xpcom/io/nsAppFileLocationProvider.cpp
+++ b/xpcom/io/nsAppFileLocationProvider.cpp
@@ -28,6 +28,8 @@
# include <sys/param.h>
#endif
+#include "TorFileUtils.h"
+
// WARNING: These hard coded names need to go away. They need to
// come from localizable resources
@@ -234,8 +236,14 @@ nsresult nsAppFileLocationProvider::CloneMozBinDirectory(nsIFile** aLocalFile) {
// GetProductDirectory - Gets the directory which contains the application data
// folder
//
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+// UNIX and WIN : <App Folder>/../TorBrowser-Data/Browser
+// Mac : <App Folder>/../../../TorBrowser-Data/Browser OR
+// ~/Library/Application Support/TorBrowser-Data/Browser
+#else
// UNIX and WIN : <App Folder>/TorBrowser/Data/Browser
// Mac : <App Folder>/../../TorBrowser/Data/Browser
+#endif
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool aLocal) {
@@ -243,42 +251,25 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
return NS_ERROR_INVALID_ARG;
}
- nsresult rv;
+ nsresult rv = NS_ERROR_UNEXPECTED;
bool exists;
- nsCOMPtr<nsIFile> localDir;
+ nsCOMPtr<nsIFile> localDir, exeFile;
- rv = CloneMozBinDirectory(getter_AddRefs(localDir));
+ nsCOMPtr<nsIProperties> directoryService(
+ do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = directoryService->Get(XRE_EXECUTABLE_FILE, NS_GET_IID(nsIFile),
+ getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = TorBrowser_GetUserDataDir(exeFile, getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- int levelsToRemove = 1; // In FF21+, bin dir points to browser subdirectory.
-#if defined(XP_MACOSX)
- levelsToRemove += 2;
-#endif
- while (localDir && (levelsToRemove > 0)) {
- // When crawling up the hierarchy, components named "." do not count.
- nsAutoCString removedName;
- rv = localDir->GetNativeLeafName(removedName);
- NS_ENSURE_SUCCESS(rv, rv);
- bool didRemove = !removedName.Equals(".");
-
- // Remove a directory component.
- nsCOMPtr<nsIFile> parentDir;
- rv = localDir->GetParent(getter_AddRefs(parentDir));
- NS_ENSURE_SUCCESS(rv, rv);
- localDir = parentDir;
-
- if (didRemove) {
- --levelsToRemove;
- }
- }
-
- if (!localDir) {
- return NS_ERROR_FAILURE;
- }
-
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ rv = localDir->AppendNative(NS_LITERAL_CSTRING("Browser"));
+#else
rv = localDir->AppendRelativeNativePath(
- NS_LITERAL_CSTRING("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
- "Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+ NS_LITERAL_CSTRING("Data" XPCOM_FILE_PATH_SEPARATOR "Browser"));
+#endif
NS_ENSURE_SUCCESS(rv, rv);
if (aLocal) {
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 16620: Clear window.name when no referrer sent
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 723258c2a18a4ef675c98b79d9a2ac0598be8792
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Oct 30 14:28:13 2015 -0400
Bug 16620: Clear window.name when no referrer sent
Convert JS implementation (within Torbutton) to a C++ browser patch.
---
docshell/base/nsDocShell.cpp | 60 +++++++
docshell/test/mochitest/mochitest.ini | 3 +
docshell/test/mochitest/test_tor_bug16620.html | 211 +++++++++++++++++++++++++
docshell/test/mochitest/tor_bug16620.html | 51 ++++++
docshell/test/mochitest/tor_bug16620_form.html | 51 ++++++
5 files changed, 376 insertions(+)
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index d0aa79344605..22eb5c4556f6 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -7476,11 +7476,71 @@ nsresult nsDocShell::CreateContentViewer(const nsACString& aContentType,
aOpenedChannel->GetURI(getter_AddRefs(mLoadingURI));
}
FirePageHideNotification(!mSavingOldViewer);
+
if (mIsBeingDestroyed) {
// Force to stop the newly created orphaned viewer.
viewer->Stop();
return NS_ERROR_DOCSHELL_DYING;
}
+
+ // Tor bug 16620: Clear window.name of top-level documents if
+ // there is no referrer. We make an exception for new windows,
+ // e.g., window.open(url, "MyName").
+ bool isNewWindowTarget = false;
+ nsCOMPtr<nsIPropertyBag2> props(do_QueryInterface(aRequest, &rv));
+ if (props) {
+ props->GetPropertyAsBool(NS_LITERAL_STRING("docshell.newWindowTarget"),
+ &isNewWindowTarget);
+ }
+
+ if (!isNewWindowTarget) {
+ nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(aOpenedChannel));
+ nsCOMPtr<nsIURI> httpReferrer;
+ if (httpChannel) {
+ nsCOMPtr<nsIReferrerInfo> referrerInfo;
+ rv = httpChannel->GetReferrerInfo(getter_AddRefs(referrerInfo));
+ NS_ENSURE_SUCCESS(rv, rv);
+ if (referrerInfo) {
+ // We want GetComputedReferrer() instead of GetOriginalReferrer(), since
+ // the former takes into consideration referrer policy, protocol
+ // whitelisting...
+ httpReferrer = referrerInfo->GetComputedReferrer();
+ }
+ }
+
+ bool isTopFrame = mBrowsingContext->IsTop();
+
+#ifdef DEBUG_WINDOW_NAME
+ printf("DOCSHELL %p CreateContentViewer - possibly clearing window.name:\n",
+ this);
+ printf(" current window.name: \"%s\"\n",
+ NS_ConvertUTF16toUTF8(mName).get());
+
+ nsAutoCString curSpec, loadingSpec;
+ if (this->mCurrentURI) mCurrentURI->GetSpec(curSpec);
+ if (mLoadingURI) mLoadingURI->GetSpec(loadingSpec);
+ printf(" current URI: %s\n", curSpec.get());
+ printf(" loading URI: %s\n", loadingSpec.get());
+ printf(" is top document: %s\n", isTopFrame ? "Yes" : "No");
+
+ if (!httpReferrer) {
+ printf(" referrer: None\n");
+ } else {
+ nsAutoCString refSpec;
+ httpReferrer->GetSpec(refSpec);
+ printf(" referrer: %s\n", refSpec.get());
+ }
+#endif
+
+ bool clearName = isTopFrame && !httpReferrer;
+ if (clearName) SetName(NS_LITERAL_STRING(""));
+
+#ifdef DEBUG_WINDOW_NAME
+ printf(" action taken: %s window.name\n",
+ clearName ? "Cleared" : "Preserved");
+#endif
+ }
+
mLoadingURI = nullptr;
// Set mFiredUnloadEvent = false so that the unload handler for the
diff --git a/docshell/test/mochitest/mochitest.ini b/docshell/test/mochitest/mochitest.ini
index 25d3187711fe..663750b7fc8e 100644
--- a/docshell/test/mochitest/mochitest.ini
+++ b/docshell/test/mochitest/mochitest.ini
@@ -52,6 +52,8 @@ support-files =
start_historyframe.html
url1_historyframe.html
url2_historyframe.html
+ tor_bug16620.html
+ tor_bug16620_form.html
[test_anchor_scroll_after_document_open.html]
[test_bfcache_plus_hash.html]
@@ -115,6 +117,7 @@ support-files = file_bug675587.html
[test_framedhistoryframes.html]
support-files = file_framedhistoryframes.html
[test_pushState_after_document_open.html]
+[test_tor_bug16620.html]
[test_windowedhistoryframes.html]
[test_triggeringprincipal_location_seturi.html]
[test_bug1507702.html]
diff --git a/docshell/test/mochitest/test_tor_bug16620.html b/docshell/test/mochitest/test_tor_bug16620.html
new file mode 100644
index 000000000000..46fff5a04711
--- /dev/null
+++ b/docshell/test/mochitest/test_tor_bug16620.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<meta charset="utf-8">
+<head>
+ <title>Test for Tor Bug 16620 - Clear window.name when no referrer sent</title>
+ <script type="application/javascript"
+ src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://trac.torproject.org/projects/tor/ticket/16620">Tor Bug 16620</a>
+<script>
+// ## Test constants
+const kTestPath = "/tests/docshell/test/mochitest/";
+const kLinkFile = "tor_bug16620.html";
+const kFormFile = "tor_bug16620_form.html";
+const kBaseURL1 = "http://example.com";
+const kBaseURL1_https = "https://example.com";
+const kBaseURL2 = "http://example.net";
+const kSendReferrerPref = "network.http.sendRefererHeader";
+const kSendReferrerNever = 0;
+const kSendReferrerForUserAction = 1;
+const kSendReferrerAlways = 2;
+
+let gTests = [
+ // Test #1: Same domain; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #2: Same domain; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #3: Same domain; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #4: Different top-level domains; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #5: Different top-level domains; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #6: Different top-level domains; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #7: https -> http transition.
+ { startURL: kBaseURL1_https, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: true },
+
+ // Test #8: Same domain, rel="noreferrer" on link.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerOnLink: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #9: Same domain, "no-referrer" meta tag in document.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #10: Like test #9, but reset window.name during unload.
+ // (similar to http://www.thomasfrank.se/sessvarsTestPage1.html)
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ resetInUnload: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #11: Data URL as destination (no referrer).
+ { startURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #12: Ensure that window.name is preserved when a dynamically loaded
+ // iframe is used to perform a form post (regression test for Tor bug 18168).
+ { startURL: kBaseURL1,
+ isFormTest: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+];
+
+let gCurTest = 0;
+let gCurWinName, gChildWin, gDataURL;
+
+// ## Utility functions
+function generateRandomName()
+{
+ // Generate a random 6 character string using 0-9 and a-z.
+ return ((1 + Math.random()).toString(36) + '000000').substr(2, 6);
+}
+
+function startNextTest() {
+ ++gCurTest;
+ if (gCurTest > gTests.length) {
+ SimpleTest.finish();
+ } else {
+ let curTest = gTests[gCurTest - 1];
+ if ("referrerPref" in curTest)
+ SpecialPowers.setIntPref(kSendReferrerPref, curTest.referrerPref);
+ else
+ SpecialPowers.setIntPref(kSendReferrerPref, kSendReferrerForUserAction);
+ gCurWinName = generateRandomName();
+ let url = curTest.startURL + kTestPath;
+ if (curTest.isFormTest === true) {
+ url += kFormFile + "?" + gCurWinName;
+ gChildWin = window.open(url, undefined);
+ } else {
+ url += kLinkFile + "?firstDocLoaded";
+ gChildWin = window.open(url, gCurWinName);
+ }
+ }
+}
+
+// ## Add a message event listener.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.source !== gChildWin)
+ return;
+
+// console.log("parent received message:" + JSON.stringify(aEvent.data));
+
+ let proceedToNextTest = false;
+ let curTest = gTests[gCurTest - 1];
+ let state = aEvent.data.state;
+ let winName = aEvent.data.winName;
+ if ("firstDocLoaded" == state) {
+ // Process response from step one of the link-based tests.
+ let step1Passed = (winName === gCurWinName);
+ if (!step1Passed) {
+ ok(step1Passed, "Test #" + gCurTest +
+ " - first document's name matches window.open parameter");
+ proceedToNextTest = true;
+ }
+
+ // Send an "openURL" message to the loaded document.
+ let url2 = (curTest.destURL)
+ ? curTest.destURL + kTestPath + kLinkFile + "?secondDocLoaded"
+ : gDataURL;
+ let noReferrerOnLink = (curTest.noReferrerOnLink === true);
+ let noReferrerInMetaTag = (curTest.noReferrerInMetaTag === true);
+ let resetInUnload = (curTest.resetInUnload === true);
+ aEvent.source.postMessage({ action: "openURL", url: url2,
+ noReferrerOnLink: noReferrerOnLink,
+ noReferrerInMetaTag: noReferrerInMetaTag,
+ resetInUnload: resetInUnload },
+ "*");
+ } else if ("secondDocLoaded" == state) {
+ // Process response from step two of the link-based tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - second document: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - second document: name was preserved");
+ }
+ proceedToNextTest = true;
+ } else if ("formPostDone" == state) {
+ // Process response from the form post tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - iframe form post: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - iframe form post: name was preserved");
+ }
+ proceedToNextTest = true;
+
+ }
+
+ if (proceedToNextTest) {
+ gChildWin.close();
+ startNextTest();
+ }
+ }, false);
+
+ SimpleTest.waitForExplicitFinish();
+
+ if (SpecialPowers.getBoolPref("security.nocertdb")) {
+ // Mochitests don't simulate https correctly with "security.nocertdb"
+ // enabled. See https://bugs.torproject.org/18087
+ ok(false, "Please disable the pref `security.nocertdb` before running this test.");
+ SimpleTest.finish();
+ } else {
+
+ // Read file contents, construct a data URL (used by some tests), and
+ // then start the first test.
+ let url = kTestPath + kLinkFile;
+ let xhr = new XMLHttpRequest();
+ xhr.open("GET", url);
+ xhr.onload = function() {
+ gDataURL = "data:text/html;charset=utf-8,"
+ + encodeURIComponent(this.responseText);
+ startNextTest();
+ }
+ xhr.send();
+ }
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620.html b/docshell/test/mochitest/tor_bug16620.html
new file mode 100644
index 000000000000..26b8e406bbff
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+<a id="link" href="">secondDoc</a>
+
+<script>
+// Extract test state from our query string, defaulting to
+// "secondDocLoaded" to support use of this HTML content within
+// a data URI (where query strings are not supported).
+let state = (location.search.length > 0) ? location.search.substr(1)
+ : "secondDocLoaded";
+
+// Notify the test driver.
+opener.postMessage({ state: state, winName: window.name }, "*");
+
+// Add a message event listener to process "openURL" actions.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.data.action == "openURL") {
+ if (aEvent.data.noReferrerInMetaTag) {
+ let metaElem = document.createElement("meta");
+ metaElem.name = "referrer";
+ metaElem.content = "no-referrer";
+ document.head.appendChild(metaElem);
+ }
+
+ let linkElem = document.getElementById("link");
+ linkElem.href = aEvent.data.url;
+ if (aEvent.data.noReferrerOnLink)
+ linkElem.rel = "noreferrer";
+
+ if (aEvent.data.resetInUnload) {
+ let tmpName = window.name;
+ window.addEventListener("unload", function() {
+ window.name = tmpName;
+ }, false);
+ }
+
+ linkElem.click();
+ }
+}, false);
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620_form.html b/docshell/test/mochitest/tor_bug16620_form.html
new file mode 100644
index 000000000000..279f62e63fab
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620_form.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+
+ Regression test for bug 18168: iframe-based AJAX call opening in new tab
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Form-based Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+
+<script>
+document.addEventListener("DOMContentLoaded", function () {
+ addPostTarget();
+}, false);
+
+
+function addPostTarget()
+{
+ let frameName = location.search.substr(1);
+ let form = document.getElementById("postform");
+ let iframe = document.createElement("iframe");
+ iframe.style.border = "1px solid red";
+ iframe.src = "about:blank";
+ form.target = iframe.name = iframe.id = frameName;
+ document.body.appendChild(iframe);
+
+ let didSubmit = false;
+ iframe.onload = function() {
+ if (!didSubmit) {
+ didSubmit = true;
+ let submitButton = document.getElementById("submitButton");
+ submitButton.click();
+ } else {
+ // Form submission complete. Report iframe's name to test driver.
+ opener.postMessage({ state: "formPostDone", winName: iframe.name }, "*");
+ }
+ };
+}
+
+</script>
+<form name="postform" id="postform"
+ action="data:text/plain;charset=utf-8,Hello%20world"
+ method="POST" enctype="multipart/form-data">
+ <input type="hidden" name="field1" value="value1"><br>
+ <input id="submitButton" type="submit" value="Post It">
+</body>
+</html>
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 18821: Disable libmdns for Android and Desktop
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit d577b30ed769a08906f646b2ccdd7764d3b1f3f9
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Apr 20 14:34:50 2016 +0000
Bug 18821: Disable libmdns for Android and Desktop
There should be no need to remove the OS X support introduced in
https://bugzilla.mozilla.org/show_bug.cgi?id=1225726 as enabling this
is governed by a preference (which is actually set to `false`). However,
we remove it at build time as well (defense in depth).
This is basically a backout of the relevant passages of
https://hg.mozilla.org/mozilla-central/rev/6bfb430de85d,
https://hg.mozilla.org/mozilla-central/rev/609b337bf7ab and
https://hg.mozilla.org/mozilla-central/rev/8e092ec5fbbd.
Fixed bug 21861 (Disable additional mDNS code to avoid proxy bypasses)
as well.
---
dom/presentation/provider/components.conf | 10 ----------
dom/presentation/provider/moz.build | 1 -
netwerk/dns/mdns/libmdns/components.conf | 15 ---------------
netwerk/dns/mdns/libmdns/moz.build | 28 ----------------------------
4 files changed, 54 deletions(-)
diff --git a/dom/presentation/provider/components.conf b/dom/presentation/provider/components.conf
index 04cb28ec757e..56994ed7cd94 100644
--- a/dom/presentation/provider/components.conf
+++ b/dom/presentation/provider/components.conf
@@ -6,9 +6,6 @@
categories = {}
-if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'android'):
- categories["presentation-device-provider"] = "MulticastDNSDeviceProvider"
-
Classes = [
{
'cid': '{f4079b8b-ede5-4b90-a112-5b415a931deb}',
@@ -16,11 +13,4 @@ Classes = [
'jsm': 'resource://gre/modules/PresentationControlService.jsm',
'constructor': 'PresentationControlService',
},
- {
- 'cid': '{814f947a-52f7-41c9-94a1-3684797284ac}',
- 'contract_ids': ['@mozilla.org/presentation-device/multicastdns-provider;1'],
- 'type': 'mozilla::dom::presentation::MulticastDNSDeviceProvider',
- 'headers': ['/dom/presentation/provider/MulticastDNSDeviceProvider.h'],
- 'categories': categories,
- },
]
diff --git a/dom/presentation/provider/moz.build b/dom/presentation/provider/moz.build
index eaea61af415a..d97b75ddbcf9 100644
--- a/dom/presentation/provider/moz.build
+++ b/dom/presentation/provider/moz.build
@@ -10,7 +10,6 @@ EXTRA_JS_MODULES += [
UNIFIED_SOURCES += [
'DeviceProviderHelpers.cpp',
- 'MulticastDNSDeviceProvider.cpp',
]
XPCOM_MANIFESTS += [
diff --git a/netwerk/dns/mdns/libmdns/components.conf b/netwerk/dns/mdns/libmdns/components.conf
index 6e64140c820e..1b50dbf673a4 100644
--- a/netwerk/dns/mdns/libmdns/components.conf
+++ b/netwerk/dns/mdns/libmdns/components.conf
@@ -5,20 +5,5 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Classes = [
- {
- 'cid': '{14a50f2b-7ff6-48a5-88e3-615fd111f5d3}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-info;1'],
- 'type': 'mozilla::net::nsDNSServiceInfo',
- 'headers': ['/netwerk/dns/mdns/libmdns/nsDNSServiceInfo.h'],
- },
]
-if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'cocoa':
- Classes += [
- {
- 'cid': '{f9346d98-f27a-4e89-b744-493843416480}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-sd;1'],
- 'jsm': 'resource://gre/modules/DNSServiceDiscovery.jsm',
- 'constructor': 'nsDNSServiceDiscovery',
- },
- ]
diff --git a/netwerk/dns/mdns/libmdns/moz.build b/netwerk/dns/mdns/libmdns/moz.build
index 05dc75eb9eda..a6fc1a8a559a 100644
--- a/netwerk/dns/mdns/libmdns/moz.build
+++ b/netwerk/dns/mdns/libmdns/moz.build
@@ -4,34 +4,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
- UNIFIED_SOURCES += [
- 'MDNSResponderOperator.cpp',
- 'MDNSResponderReply.cpp',
- 'nsDNSServiceDiscovery.cpp',
- ]
-
- LOCAL_INCLUDES += [
- '/netwerk/base',
- ]
-
-else:
- EXTRA_JS_MODULES += [
- 'DNSServiceDiscovery.jsm',
- 'fallback/DataReader.jsm',
- 'fallback/DataWriter.jsm',
- 'fallback/DNSPacket.jsm',
- 'fallback/DNSRecord.jsm',
- 'fallback/DNSResourceRecord.jsm',
- 'fallback/DNSTypes.jsm',
- 'fallback/MulticastDNS.jsm',
- ]
-
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
- EXTRA_JS_MODULES += [
- 'MulticastDNSAndroid.jsm',
- ]
-
UNIFIED_SOURCES += [
'nsDNSServiceInfo.cpp',
]
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 1e6ce149c8a92fb33892c7c93be91c1ac36575dd
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 21 10:40:26 2016 -0400
Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
Instead of using the local computer's IP address within
symlink-based profile lock signatures, always use 127.0.0.1.
---
toolkit/profile/nsProfileLock.cpp | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/toolkit/profile/nsProfileLock.cpp b/toolkit/profile/nsProfileLock.cpp
index 25c4f5a79e56..1942815e3446 100644
--- a/toolkit/profile/nsProfileLock.cpp
+++ b/toolkit/profile/nsProfileLock.cpp
@@ -289,18 +289,17 @@ nsresult nsProfileLock::LockWithSymlink(nsIFile* aLockFile,
if (!mReplacedLockTime)
aLockFile->GetLastModifiedTimeOfLink(&mReplacedLockTime);
+ // For Tor Browser, avoid a DNS lookup here so the Tor network is not
+ // bypassed. Instead, always use 127.0.0.1 for the IP address portion
+ // of the lock signature, which may cause the browser to refuse to
+ // start in the rare event that all of the following conditions are met:
+ // 1. The browser profile is on a network file system.
+ // 2. The file system does not support fcntl() locking.
+ // 3. Tor Browser is run from two different computers at the same time.
+
struct in_addr inaddr;
inaddr.s_addr = htonl(INADDR_LOOPBACK);
- char hostname[256];
- PRStatus status = PR_GetSystemInfo(PR_SI_HOSTNAME, hostname, sizeof hostname);
- if (status == PR_SUCCESS) {
- char netdbbuf[PR_NETDB_BUF_SIZE];
- PRHostEnt hostent;
- status = PR_GetHostByName(hostname, netdbbuf, sizeof netdbbuf, &hostent);
- if (status == PR_SUCCESS) memcpy(&inaddr, hostent.h_addr, sizeof inaddr);
- }
-
mozilla::SmprintfPointer signature =
mozilla::Smprintf("%s:%s%lu", inet_ntoa(inaddr),
aHaveFcntlLock ? "+" : "", (unsigned long)getpid());
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 16940: After update, load local change notes.
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 6f4987fcf454bf77c193397bb3ccd034639c9b99
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Nov 25 11:36:20 2015 -0500
Bug 16940: After update, load local change notes.
Add an about:tbupdate page that displays the first section from
TorBrowser/Docs/ChangeLog.txt and includes a link to the remote
post-update page (typically our blog entry for the release).
Always load about:tbupdate in a content process, but implement the
code that reads the file system (changelog) in the chrome process
for compatibility with future sandboxing efforts.
Also fix bug 29440. Now about:tbupdate is styled as a fairly simple
changelog page that is designed to be displayed via a link that is on
about:tor.
---
browser/actors/AboutTBUpdateChild.jsm | 53 ++++++++
browser/actors/moz.build | 5 +
.../base/content/abouttbupdate/aboutTBUpdate.css | 74 ++++++++++++
.../base/content/abouttbupdate/aboutTBUpdate.js | 10 ++
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 39 ++++++
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 4 +
browser/base/jar.mn | 5 +
browser/components/BrowserContentHandler.jsm | 55 ++++++---
browser/components/BrowserGlue.jsm | 25 ++++
browser/components/about/AboutRedirector.cpp | 6 +
browser/components/about/components.conf | 3 +
browser/components/moz.build | 5 +-
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 8 ++
browser/locales/jar.mn | 3 +
browser/modules/AboutTBUpdate.jsm | 134 +++++++++++++++++++++
browser/modules/moz.build | 5 +
17 files changed, 420 insertions(+), 16 deletions(-)
diff --git a/browser/actors/AboutTBUpdateChild.jsm b/browser/actors/AboutTBUpdateChild.jsm
new file mode 100644
index 000000000000..91bb4dbba888
--- /dev/null
+++ b/browser/actors/AboutTBUpdateChild.jsm
@@ -0,0 +1,53 @@
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+var EXPORTED_SYMBOLS = ["AboutTBUpdateChild"];
+
+const {ActorChild} = ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
+
+class AboutTBUpdateChild extends ActorChild {
+ receiveMessage(aMessage) {
+ if (aMessage.name == "AboutTBUpdate:Update")
+ this.onUpdate(aMessage.data);
+ }
+
+ handleEvent(aEvent) {
+ switch (aEvent.type) {
+ case "AboutTBUpdateLoad":
+ this.onPageLoad();
+ break;
+ case "pagehide":
+ this.onPageHide(aEvent);
+ break;
+ }
+ }
+
+ // aData may contain the following string properties:
+ // version
+ // releaseDate
+ // moreInfoURL
+ // releaseNotes
+ onUpdate(aData) {
+ let doc = this.content.document;
+ doc.getElementById("version-content").textContent = aData.version;
+ if (aData.releaseDate) {
+ doc.body.setAttribute("havereleasedate", "true");
+ doc.getElementById("releasedate-content").textContent = aData.releaseDate;
+ }
+ if (aData.moreInfoURL)
+ doc.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
+ doc.getElementById("releasenotes-content").textContent = aData.releaseNotes;
+ }
+
+ onPageLoad() {
+ this.mm.sendAsyncMessage("AboutTBUpdate:RequestUpdate");
+ }
+
+ onPageHide(aEvent) {
+ if (aEvent.target.defaultView.frameElement) {
+ return;
+ }
+ }
+}
diff --git a/browser/actors/moz.build b/browser/actors/moz.build
index 4b903146699e..e70f0f09fe3a 100644
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -74,3 +74,8 @@ FINAL_TARGET_FILES.actors += [
'WebRTCChild.jsm',
'WebRTCParent.jsm',
]
+
+if CONFIG['TOR_BROWSER_UPDATE']:
+ FINAL_TARGET_FILES.actors += [
+ 'AboutTBUpdateChild.jsm',
+ ]
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
new file mode 100644
index 000000000000..7c1a34b77f17
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2019, The Tor Project, Inc.
+ * See LICENSE for licensing information.
+ *
+ * vim: set sw=2 sts=2 ts=8 et syntax=css:
+ */
+
+:root {
+ --abouttor-text-color: white;
+ --abouttor-bg-toron-color: #420C5D;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ color: var(--abouttor-text-color);
+ background-color: var(--abouttor-bg-toron-color);
+ background-attachment: fixed;
+ background-size: 100% 100%;
+}
+
+a {
+ color: var(--abouttor-text-color);
+}
+
+.two-column-grid {
+ display: inline-grid;
+ grid-template-columns: auto auto;
+ grid-column-gap: 50px;
+ margin: 10px 0px 0px 50px;
+}
+
+.two-column-grid div {
+ margin-top: 40px;
+ align-self: baseline; /* Align baseline of text across the row. */
+}
+
+.label-column {
+ font-size: 14px;
+ font-weight: 400;
+}
+
+/*
+ * Use a reduced top margin to bring the row that contains the
+ * "visit our website" link closer to the row that precedes it. This
+ * looks better because the "visit our website" row does not have a
+ * label in the left column.
+ */
+div.more-info-row {
+ margin-top: 5px;
+ font-size: 14px;
+}
+
+#version-content {
+ font-size: 50px;
+ font-weight: 300;
+}
+
+body:not([havereleasedate]) .release-date-cell {
+ display: none;
+}
+
+#releasedate-content {
+ font-size: 17px;
+}
+
+#releasenotes-label {
+ align-self: start; /* Anchor "Release Notes" label at the top. */
+}
+
+#releasenotes-content {
+ font-family: monospace;
+ font-size: 15px;
+ white-space: pre;
+}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.js b/browser/base/content/abouttbupdate/aboutTBUpdate.js
new file mode 100644
index 000000000000..da7553f0ae81
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.js
@@ -0,0 +1,10 @@
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+
+addEventListener("load", () => {
+ let event = new CustomEvent("AboutTBUpdateLoad", { bubbles: true });
+ document.dispatchEvent(event);
+});
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
new file mode 100644
index 000000000000..8489cfef5083
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html [
+ <!ENTITY % htmlDTD
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "DTD/xhtml1-strict.dtd">
+ %htmlDTD;
+ <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+ <!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
+ %tbUpdateDTD;
+]>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
+ <title>&aboutTBUpdate.changelogTitle;</title>
+ <link rel="stylesheet" type="text/css"
+ href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"/>
+ <script src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
+ type="text/javascript"/>
+</head>
+<body dir="&locale.dir;">
+<div class="two-column-grid">
+ <div class="label-column">&aboutTBUpdate.version;</div>
+ <div id="version-content"/>
+
+ <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div>
+ <div id="releasedate-content" class="release-date-cell"/>
+
+ <div class="more-info-row"/>
+ <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+
+ <div id="releasenotes-label"
+ class="label-column">&aboutTBUpdate.releaseNotes;</div>
+ <div id="releasenotes-content"></div>
+</div>
+</body>
+</html>
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index d545ee055367..80c3f2a86538 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -57,7 +57,7 @@ var gIdentityHandler = {
* RegExp used to decide if an about url should be shown as being part of
* the browser UI.
*/
- _secureInternalUIWhitelist: /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback)(?:[?#]|$)/i,
+ _secureInternalUIWhitelist: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor)(?:[?#]|$)/i),
/**
* Whether the established HTTPS connection is considered "broken".
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 3c342dedd5d4..036d92e131da 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -631,6 +631,10 @@ var gInitialPages = [
"about:newinstall",
];
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ gInitialPages.push("about:tbupdate");
+}
+
function isInitialPage(url) {
if (!(url instanceof Ci.nsIURI)) {
try {
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index a2e1f9c259d2..df65349796b5 100644
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -29,6 +29,11 @@ browser.jar:
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
+#ifdef TOR_BROWSER_UPDATE
+ content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
+ content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
+ content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
+#endif
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
* content/browser/browser.xhtml (content/browser.xhtml)
diff --git a/browser/components/BrowserContentHandler.jsm b/browser/components/BrowserContentHandler.jsm
index 9f5b6ab0218c..1cc1015414fc 100644
--- a/browser/components/BrowserContentHandler.jsm
+++ b/browser/components/BrowserContentHandler.jsm
@@ -650,6 +650,23 @@ nsBrowserContentHandler.prototype = {
}
}
+ // Retrieve the home page early so we can compare it against about:tor
+ // to decide whether or not we need an override page (second tab) after
+ // an update was applied.
+ var startPage = "";
+ try {
+ var choice = prefb.getIntPref("browser.startup.page");
+ if (choice == 1 || choice == 3) {
+ startPage = HomePage.get();
+ }
+ } catch (e) {
+ Cu.reportError(e);
+ }
+
+ if (startPage == "about:blank") {
+ startPage = "";
+ }
+
var override;
var overridePage = "";
var additionalPage = "";
@@ -701,6 +718,16 @@ nsBrowserContentHandler.prototype = {
// into account because that requires waiting for the session file
// to be read. If a crash occurs after updating, before restarting,
// we may open the startPage in addition to restoring the session.
+ //
+ // Tor Browser: Instead of opening the post-update "override page"
+ // directly, we ensure that about:tor will be opened in a special
+ // mode that notifies the user that their browser was updated.
+ // The about:tor page will provide a link to the override page
+ // where the user can learn more about the update, as well as a
+ // link to the Tor Browser changelog page (about:tbupdate). The
+ // override page URL comes from the openURL attribute within the
+ // updates.xml file or, if no showURL action is present, from the
+ // startup.homepage_override_url pref.
willRestoreSession = SessionStartup.isAutomaticRestoreEnabled();
overridePage = Services.urlFormatter.formatURLPref(
@@ -720,6 +747,20 @@ nsBrowserContentHandler.prototype = {
overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
overridePage = overridePage.replace("%OLD_TOR_BROWSER_VERSION%",
old_tbversion);
+#ifdef TOR_BROWSER_UPDATE
+ if (overridePage)
+ {
+ prefb.setCharPref("torbrowser.post_update.url", overridePage);
+ prefb.setBoolPref("torbrowser.post_update.shouldNotify", true);
+ // If the user's homepage is about:tor, we will inform them
+ // about the update on that page; otherwise, we arrange to
+ // open about:tor in a secondary tab.
+ if (startPage === "about:tor")
+ overridePage = "";
+ else
+ overridePage = "about:tor";
+ }
+#endif
break;
case OVERRIDE_NEW_BUILD_ID:
if (UpdateManager.activeUpdate) {
@@ -792,20 +833,6 @@ nsBrowserContentHandler.prototype = {
}
}
- var startPage = "";
- try {
- var choice = prefb.getIntPref("browser.startup.page");
- if (choice == 1 || choice == 3) {
- startPage = HomePage.get();
- }
- } catch (e) {
- Cu.reportError(e);
- }
-
- if (startPage == "about:blank") {
- startPage = "";
- }
-
let skipStartPage =
(override == OVERRIDE_NEW_PROFILE ||
override == OVERRIDE_ALTERNATE_PROFILE) &&
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 0a3555f26432..3b7d8d6e0309 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -560,6 +560,22 @@ let LEGACY_ACTORS = {
},
};
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ LEGACY_ACTORS["AboutTBUpdate"] = {
+ child: {
+ module: "resource:///actors/AboutTBUpdateChild.jsm",
+ events: {
+ "AboutTBUpdateLoad": {wantUntrusted: true},
+ "pagehide": {capture: true},
+ },
+ matches: ["about:tbupdate"],
+ messages: [
+ "AboutTBUpdate:Update",
+ ],
+ }
+ };
+}
+
(function earlyBlankFirstPaint() {
if (
AppConstants.platform == "macosx" ||
@@ -747,6 +763,11 @@ if (AppConstants.MOZ_CRASHREPORTER) {
});
}
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ XPCOMUtils.defineLazyModuleGetter(this, "AboutTBUpdate",
+ "resource:///modules/AboutTBUpdate.jsm");
+}
+
XPCOMUtils.defineLazyGetter(this, "gBrandBundle", function() {
return Services.strings.createBundle(
"chrome://branding/locale/brand.properties"
@@ -2200,6 +2221,10 @@ BrowserGlue.prototype = {
AsanReporter.init();
}
+ if (AppConstants.TOR_BROWSER_UPDATE) {
+ AboutTBUpdate.init();
+ }
+
Sanitizer.onStartup();
this._scheduleStartupIdleTasks();
this._lateTasksIdleObserver = (idleService, topic, data) => {
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index 1471e10bf0db..933d519bd959 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -120,6 +120,12 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"pioneer", "chrome://browser/content/pioneer.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#ifdef TOR_BROWSER_UPDATE
+ {"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#endif
};
static nsAutoCString GetAboutModuleName(nsIURI* aURI) {
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index bf0c6c096847..f31159d30e15 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -32,6 +32,9 @@ pages = [
'welcomeback',
]
+if defined('TOR_BROWSER_UPDATE'):
+ pages.append('tbupdate')
+
Classes = [
{
'cid': '{7e4bb6ad-2fc4-4dc6-89ef-23e8e5ccf980}',
diff --git a/browser/components/moz.build b/browser/components/moz.build
index c75c10b0c92d..cf3f566eba71 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -90,11 +90,14 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES += [
- 'BrowserContentHandler.jsm',
'BrowserGlue.jsm',
'distribution.js',
]
+EXTRA_PP_JS_MODULES += [
+ 'BrowserContentHandler.jsm',
+]
+
BROWSER_CHROME_MANIFESTS += [
'safebrowsing/content/test/browser.ini',
'tests/browser/browser.ini',
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
new file mode 100644
index 000000000000..2d1e59b40eaf
--- /dev/null
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -0,0 +1,8 @@
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
+<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
+<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
+<!ENTITY aboutTBUpdate.linkLabel "visit our website">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index ca892a187adf..31e2d3d870e6 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -20,6 +20,9 @@
locale/browser/accounts.properties (%chrome/browser/accounts.properties)
locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
+#ifdef TOR_BROWSER_UPDATE
+ locale/browser/aboutTBUpdate.dtd (%chrome/browser/aboutTBUpdate.dtd)
+#endif
locale/browser/browser.dtd (%chrome/browser/browser.dtd)
locale/browser/baseMenuOverlay.dtd (%chrome/browser/baseMenuOverlay.dtd)
locale/browser/browser.properties (%chrome/browser/browser.properties)
diff --git a/browser/modules/AboutTBUpdate.jsm b/browser/modules/AboutTBUpdate.jsm
new file mode 100644
index 000000000000..996e2e8394aa
--- /dev/null
+++ b/browser/modules/AboutTBUpdate.jsm
@@ -0,0 +1,134 @@
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+"use strict";
+
+var Cc = Components.classes;
+var Ci = Components.interfaces;
+var Cu = Components.utils;
+
+this.EXPORTED_SYMBOLS = [ "AboutTBUpdate" ];
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/NetUtil.jsm");
+
+const kRequestUpdateMessageName = "AboutTBUpdate:RequestUpdate";
+const kSendUpdateMessageName = "AboutTBUpdate:Update";
+
+#expand const TOR_BROWSER_VERSION = __TOR_BROWSER_VERSION_QUOTED__;
+
+/**
+ * This code provides services to the about:tbupdate page. Whenever
+ * about:tbupdate needs to do something chrome-privileged, it sends a
+ * message that's handled here. It is modeled after Mozilla's about:home
+ * implementation.
+ */
+var AboutTBUpdate = {
+ init: function() {
+ Services.mm.addMessageListener(kRequestUpdateMessageName, this);
+ },
+
+ receiveMessage: function(aMessage) {
+ if (aMessage.name == kRequestUpdateMessageName)
+ this.sendAboutTBUpdateData(aMessage.target);
+ },
+
+ sendAboutTBUpdateData: function(aTarget) {
+ let data = this.releaseNoteInfo;
+ data.moreInfoURL = this.moreInfoURL;
+ if (aTarget && aTarget.messageManager) {
+ aTarget.messageManager.sendAsyncMessage(kSendUpdateMessageName, data);
+ } else {
+ Services.mm.broadcastAsyncMessage(kSendUpdateMessageName, data);
+ }
+ },
+
+ get moreInfoURL() {
+ try {
+ return Services.prefs.getCharPref("torbrowser.post_update.url");
+ } catch (e) {}
+
+ // Use the default URL as a fallback.
+ return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
+ },
+
+ // Read the text from the beginning of the changelog file that is located
+ // at TorBrowser/Docs/ChangeLog.txt and return an object that contains
+ // the following properties:
+ // version e.g., Tor Browser 8.5
+ // releaseDate e.g., March 31 2019
+ // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
+ // We attempt to parse the first line of ChangeLog.txt to extract the
+ // version and releaseDate. If parsing fails, we return the entire first
+ // line in version and omit releaseDate.
+ //
+ // On Mac OS, when building with --enable-tor-browser-data-outside-app-dir
+ // to support Gatekeeper signing, the ChangeLog.txt file is located in
+ // TorBrowser.app/Contents/Resources/TorBrowser/Docs/.
+ get releaseNoteInfo() {
+ let info = {};
+
+ try {
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ // "XREExeF".parent is the directory that contains firefox, i.e.,
+ // Browser/ or, on Mac OS, TorBrowser.app/Contents/MacOS/.
+ let f = Services.dirsvc.get("XREExeF", Ci.nsIFile).parent;
+#ifdef XP_MACOSX
+ f = f.parent;
+ f.append("Resources");
+#endif
+ f.append("TorBrowser");
+#else
+ // "DefProfRt" is .../TorBrowser/Data/Browser
+ let f = Cc["@mozilla.org/file/directory_service;1"]
+ .getService(Ci.nsIProperties).get("DefProfRt", Ci.nsIFile);
+ f = f.parent.parent; // Remove "Data/Browser"
+#endif
+ f.append("Docs");
+ f.append("ChangeLog.txt");
+
+ let fs = Cc["@mozilla.org/network/file-input-stream;1"]
+ .createInstance(Ci.nsIFileInputStream);
+ fs.init(f, -1, 0, 0);
+ let s = NetUtil.readInputStreamToString(fs, fs.available());
+ fs.close();
+
+ // Truncate at the first empty line.
+ s = s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+
+ // Split into first line (version plus releaseDate) and
+ // remainder (releaseNotes).
+ // This first match() uses multiline mode with two capture groups:
+ // first line: (.*$)
+ // remaining lines: ([\s\S]+)
+ // [\s\S] matches all characters including end of line. This trick
+ // is needed because when using JavaScript regex in multiline mode,
+ // . does not match an end of line character.
+ let matchArray = s.match(/(.*$)\s*([\s\S]+)/m);
+ if (matchArray && (matchArray.length == 3)) {
+ info.releaseNotes = matchArray[2];
+ let line1 = matchArray[1];
+ // Extract the version and releaseDate. The first line looks like:
+ // Tor Browser 8.5 -- May 1 2019
+ // The regex uses two capture groups:
+ // text that does not include a hyphen: (^[^-]*)
+ // remaining text: (.*$)
+ // In between we match optional whitespace, one or more hyphens, and
+ // optional whitespace by using: \s*-+\s*
+ matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/);
+ if (matchArray && (matchArray.length == 3)) {
+ info.version = matchArray[1];
+ info.releaseDate = matchArray[2];
+ } else {
+ info.version = line1; // Match failed: return entire line in version.
+ }
+ } else {
+ info.releaseNotes = s; // Only one line: use as releaseNotes.
+ }
+ } catch (e) {}
+
+ return info;
+ },
+};
diff --git a/browser/modules/moz.build b/browser/modules/moz.build
index 88f2a55d6f49..61fe5371e48f 100644
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -160,6 +160,11 @@ EXTRA_JS_MODULES += [
'ZoomUI.jsm',
]
+if CONFIG['TOR_BROWSER_UPDATE']:
+ EXTRA_PP_JS_MODULES += [
+ 'AboutTBUpdate.jsm',
+ ]
+
if CONFIG['MOZ_ASAN_REPORTER']:
EXTRA_JS_MODULES += [
'AsanReporter.jsm',
1
0
[tor-browser/tor-browser-78.9.0esr-10.5-1] Bug 21724: Make Firefox and Tor Browser distinct macOS apps
by sysrqb@torproject.org 17 Mar '21
by sysrqb@torproject.org 17 Mar '21
17 Mar '21
commit 786e74319e85272953d3c17eeec02cd27cd38b8c
Author: teor <teor2345(a)gmail.com>
Date: Mon Mar 13 23:06:23 2017 +1100
Bug 21724: Make Firefox and Tor Browser distinct macOS apps
When macOS opens a document or selects a default browser, it sometimes
uses the CFBundleSignature. Changing from the Firefox MOZB signature to
a different signature TORB allows macOS to distinguish between Firefox
and Tor Browser.
---
browser/app/Makefile.in | 2 +-
browser/app/macbuild/Contents/Info.plist.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 1aec6541fc0f..6770319f1866 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -103,5 +103,5 @@ ifdef MOZ_UPDATER
mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
endif
- printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo'
+ printf APPLTORB > '$(dist_dest)/Contents/PkgInfo'
endif
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index f6791ea48125..95b3bc83905c 100644
--- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -179,7 +179,7 @@
<key>CFBundleShortVersionString</key>
<string>%APP_VERSION%</string>
<key>CFBundleSignature</key>
- <string>MOZB</string>
+ <string>TORB</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
1
0
commit f4257accaf934dbdf3305cee6157a4fb88213579
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Mar 17 12:14:21 2021 +0100
Update rbm for rbm#40016
Closes #40253.
---
rbm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rbm b/rbm
index 8f5e0cd..e010657 160000
--- a/rbm
+++ b/rbm
@@ -1 +1 @@
-Subproject commit 8f5e0cd0f4a4467777c6a80cf0a92cec60d4c6c4
+Subproject commit e0106571c78a43d1de17f5282b711896750d8462
1
0
commit e0106571c78a43d1de17f5282b711896750d8462
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Mar 17 11:52:42 2021 +0100
Bug 40016: Set origin_project in getfpaths
---
lib/RBM.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/RBM.pm b/lib/RBM.pm
index 94f2e9d..2666e72 100644
--- a/lib/RBM.pm
+++ b/lib/RBM.pm
@@ -943,7 +943,8 @@ sub input_files {
}
if ($input_file->{project} && $t->('project')) {
my $r = RBM::project_step_config($t->('project'), 'input_files_paths',
- {%$options, step => $t->('pkg_type'), %$input_file});
+ {%$options, step => $t->('pkg_type'),
+ origin_project => $project, %$input_file});
push @res_getfpaths, @$r if @$r;
}
next;
1
0
[tor-browser-build/master] Bug 40241: Update components for mozilla87-based Fenix (fenix part)
by sysrqb@torproject.org 16 Mar '21
by sysrqb@torproject.org 16 Mar '21
16 Mar '21
commit 7a6b507f8ddcca9a42d672632fb52a41b8d0247c
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Tue Mar 16 02:33:24 2021 +0000
Bug 40241: Update components for mozilla87-based Fenix (fenix part)
---
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 1477 +++++++++++++--------------
2 files changed, 729 insertions(+), 752 deletions(-)
diff --git a/projects/fenix/config b/projects/fenix/config
index 79c9cd1..e42daca 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,13 +8,13 @@ gpg_keyring: torbutton.gpg
variant: Beta
var:
- fenix_version: 86.1.0
+ fenix_version: 87.0.0b2
torbrowser_branch: 10.5
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 21
+ gradle_dependencies_version: 22
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit that integrates Tor.
fetch_gradle_dependencies: 0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index f1fd847..7aad8bc 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -20,8 +20,8 @@ dd77615bd3dd275afb11b62df25bae46b10b4a117cd37943af45bdcbf8755852 | https://dl.go
c0c4ed0160cd2ca18390015de8b392b697c173327c6b2c0947d4e62f6958c05d | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-runtime/2.1…
f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b | https://dl.google.com/dl/android/maven2/androidx/asynclayoutinflater/asyncl…
48167eeedc8da79c4d29deaf0d0cd9b5d8fedcae01f1a6efb3f28f08e8982f71 | https://dl.google.com/dl/android/maven2/androidx/asynclayoutinflater/asyncl…
-e6e5ba8a7c218218e830b313f0156c4a9fb82fe30ee3a2929c8f8aebb1682f5c | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0-…
-61a0feb19654e5ab6bce641e1886cb5deccf704d9c48987db9fd9d062c97b16a | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0-…
+270c7b7d99942d5ec1dd88594e4648feb33d8e31d8c3c2ab2321d49d9abdfc1f | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
+aeb69e76988f43b06c84fca25efab2e418bb98b5aabcd03fa7913bd3ed1bcaa9 | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
8a28c71070271b6f802f5a285ab9ae5b424e60a4f4bb4e73c0c6f53c1375506d | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
0125474b4ff9dd64d9ebaa003ba0a19f782354e4490e270fc9fb2a39b33c1115 | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
1193c04c22a3d6b5946dae9f4e8c59d6adde6a71b6bd5d87fb99d82dda1afec7 | https://dl.google.com/dl/android/maven2/androidx/cardview/cardview/1.0.0/ca…
@@ -72,13 +72,12 @@ a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7 | https://dl.go
ed88fb124cfb70f2bb928ede1357874374aa45881bcb6d9744c1dc6680fa7c58 | https://dl.google.com/dl/android/maven2/androidx/legacy/legacy-support-v4/1…
9edc2d4f589656d470ef03b9c6ece62d335971294b033ec7d9ceb6e361e9aafa | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common…
3b0a665afb8ffe1081d1c4a079f185de0de137ea84bca02400e091c8e1544b87 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common…
-692c2a60437a95220c8fbb6e8943196f255f535d1a7c58714e6c46530782f276 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common…
63898dabf7cfe5ec5d7ed8b8c2564c1427be876e1496ead95c2703cf59d3734b | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common…
cc30a8a2a97d3767bd169b747c078727308096dd3ab7917d80b2f1f42d118bd6 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-common…
8d4072201b6231d67e4192d608d46b1f5c920845106c9831632c2e3ffe706117 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
e18c4bd463eab9432e5a08484d63307aff5205896766802f0978acdb9a37e9c1 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
-bd53c64b038585215b4959c1a388437a3ad525608a31c58e4283c3e371727d4d | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
-510e33b8b6ca33d2fcb3b7615a4528e338b438de398f3ee8de119c26508a5fdd | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
+648c8de1d10b025d524a2e46ac994fc3f6bf186826c09ec1a62d250bf1b877ae | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
+f9b3998f71fc46719f7305d054752d01a9dac0becbee530fd06b70a9cf7ee222 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extens…
5951f882e95b7e05ceb9adfca0fa2ebd511d63ea5a00da4eae6c6d0c1903da18 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-liveda…
85695cce0045ebb9cbba3e2fbe7d7953489bdeb517a1b2e834313ce54556ba22 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-liveda…
556c1f3af90aa9d7d0d330565adbf6da71b2429148bac91e07c485f4f9abf614 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-liveda…
@@ -97,8 +96,9 @@ c29fc87694e6ce116b61207221e53ed285862a6628055790b0bcf9ce45d8cc68 | https://dl.go
7f154066fed1c9162870f728b208352831b3d1f8f23f5d388958a50ca4e9f441 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-runtim…
cb2b15bb0cf14134e953ed8ead96f94265018643f519367d51fd837f7311e9f8 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
db21f5e6f286231197131ef184ec7f6ad212e27c1c1bad231bc2625030708029 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
-23516745f34f16ff7850bb1eadd55cf193dd789cba428de4bca120433e3bfd69 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
6b9e4fe350ed993d0c00b5ac0ff22f28bfc3bfbd9ad7eb7afc9b82f8339e673e | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
+ca2801ffc069555afed8eddd2292130f436956452bc8bbad30fb56f8e4e382a0 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
+f238f90a3d9d1f42779367309127dad8ff1a595dfa0754bbae05d77bfd0b5f33 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-servic…
f791001f2211947e56ad3d96d12c9ae93fc5589b88f08603f69a2265c9a7d702 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-viewmo…
83c7f3fb788384312dbd992259f0d77d01bf01bcd99ea57380376061abe89704 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-viewmo…
3ce866fb822b20fe2f188f974992869a0a6233fe40acbefcff090d6def5e7f33 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-viewmo…
@@ -113,34 +113,30 @@ b23b527b2bac870c4a7451e6982d7132e413e88d7f27dbeb1fc7640a720cd9ee | https://dl.go
9cdfe5f7849069ad84dc4fb0407b3677fb8c22d3d66fd2b8fdb8dec8c5dc7411 | https://dl.google.com/dl/android/maven2/androidx/media/media/1.0.0/media-1.…
fd906e30485b7d46ac888a7d601ada6d3a34451c940825d6a410f997796f7184 | https://dl.google.com/dl/android/maven2/androidx/media/media/1.2.0/media-1.…
2eaad560d5aa8fc18316547d9c069607ab59f71fb234db14438bc80428d2aea2 | https://dl.google.com/dl/android/maven2/androidx/media/media/1.2.0/media-1.…
-6f0e2165dbe0da5b20e2aac94f9e19780d8dea3d66858864fdfb0fb1217816ff | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
-bc98e597bc5cac70dcf18727b3835e9d4d9aeabe23927e01a18beedaf5e7dddb | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
-86a6752b3bbd88f5bcd1f1a67a7bf2921e54fd667a03b2bf1f0b7d5a915ff118 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
-d5f8caf14c15a739f585302b94d340b879b9cfc64261b5126060ddb477646f5f | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
-cbe267d4f0f1b7c0d48b4dcb78c2d3e661e6f15bdc83e0a40e5900e4e88b574e | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
-15bdf726113015b957937b17493195f173355ab297fa3d9c3e7e3f78ee16d1d7 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
-9b0df1445451b3a15640b5b328ab29a0e77cb56d62ae865e81711833bcf3d6df | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
-bb42537f0ace4e907ffc1c856727c3931734efe8a13be4074866bce37afad241 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
-65bdc23a7a39efa0a6eaa895dde50ed6aedede4b7bc50493bbe698f73549371d | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
-79b7cd78065bc43b2d664585462209eedfc1984351373cd17d78a4cff1ae863e | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
-d8c9430f8a5200b8364d6d2d356c48e58d278a3d0df4f923371287eabc75cf14 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
-c514e3ed9a950618b3543b75a35f20dfa8db14454360d7cecd68f7997a2461dd | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
-10c4dbfdd7cfc9efaafcf0a4598df7291b618ac3db7e2a00e2b81ba488d93687 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
-b4fbbc7d1fa1000935cd8380293f2662fa4dcb15d6d8985454e4bed5bee1429d | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
-58b98a68c7c0b27cbb87f5aa746771840de32fb0e12b3b9905471c0ab7b70391 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
-3f0cab4a9fd98ce62642445f43c57be425374710938c8b7bf71ea8bf9940e06e | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
-00db924d67f44a6b8b93144333d9c2a04c403563aeb117d4e8a22e6212a2f1ac | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-ui/2…
-8b6a272480d509ff62e3aa3c6696ecbd516e2b64c3c4b0c2dbd5aebbac8bc3ed | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-ui/2…
-b6c3acaf69d99aca153dee46dc136f3d0ec199de33ea594b8ebfe2c308011f7d | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common-ktx/2…
-f22a34f2371dc34d0f702f9e67488fac901e7e41860ba10bf32c6c6ac6b9593a | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common-ktx/2…
-7d432934364f0ab52924f5f14394768a219a980a25d6f896a62d501bfa95dec8 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common/2.1.0…
-9c046739a9531a610696fbbf40a5074c3be7c8f9336957f47bc8d87af626030f | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common/2.1.0…
+b7606e1eff11d06b15ce87b650c7e4fa7ecb3cac1daa0a3cecd7f87c54444436 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
+daea0d26125935c01ac4aeb28e03aa93e01fdde4ada6757452e1c6e2aee30751 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
+40a1dc17aeb0164cd6ec66104f298955d41ea15e2325dadef5c738f4c3bdbdf4 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
+bb1d67fab1065ddb25802f6d23287da2324d0eeec384a251413307a2ecb63a12 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-comm…
+d3f220e90aeb52e6ac644a18f68b256fae5455c3aab0c2c473e45047ff2fa6fc | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
+9cfdc226155fbad3e81d29df2a32d0f93e0cb3dfc3e8b572ad75332a612147e6 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
+9800c65da0ea1bb834b45597e64a354abbaf30e684d433f39594c88da309ef27 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
+782b113d75e6b394827353faace81037099b08bd3b0c8062c279dc5b8d5c9697 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-frag…
+a3e6c6c8e72fb26a33dca1bce21f0a3418dbbab81afb369c9d3e40dab0ccae40 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
+aaed6364faba1cfe68f71366fac6e34106cd6782a8761617b219fee67cf3f7c0 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
+e888abd65ecc2211c8b99e8a597a1c358a37a7a7b2bbbf64d1104f3a21a9edd3 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
+432d578d914f956d09c77db732bb593d7a5d16878b128e664699fa82a1abf937 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-runt…
+3a3df8938538fd92f075023882491efac2ca86d05a2962bb6b2ca19095821fc8 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
+6c743f4e276dd6fcf9f4dbbafc7b2d33626745b3ef3ca23951dba86974f796b6 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
+249f5f2e829fa27a3af50c957d8a9e635d8b65fc220d1be9e80ad769d56e19b2 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
+b8cc1e5c9159511f6560e670e1c8c954bd0af4ebda88d913ffde4732cbcbc3a5 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-safe…
+e1d5b3174273f9000246f5382cace0a9510f8f09df99d47471cedb73fca16d1d | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-ui/2…
+d76be04b675549391b1396963fcdf78de3e6d8edd8d1dcbd297b8b624bb8e145 | https://dl.google.com/dl/android/maven2/androidx/navigation/navigation-ui/2…
+b6c3acaf69d99aca153dee46dc136f3d0ec199de33ea594b8ebfe2c308011f7d | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common-ktx/2…
+6c6841037fab47981ddaf9a5ca968ffa40e6134fda51dc23c009bdbe5cf39b33 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common-ktx/2…
891dd24bad908d5d866d7d3545114ab2d26994847cd0200ac68477287c0710b5 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common/2.1.2…
80a90cda2d5fc15ab151639e980a820071531a177551cc6482b58163494eb02a | https://dl.google.com/dl/android/maven2/androidx/paging/paging-common/2.1.2…
-25a498b6472ac1d008e6475b3ffa241c7c7259e9b0aada8b2560fe9c0e48d11a | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime-ktx/…
-51045ae2d2fc5f11be38a4f2f7338f736c95c7ac8f8843844374c9cf350f8706 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime-ktx/…
-84d2cb35bc6bca7f64ee7de458e9ce00868132d764bb0fdfa8480efd9bc89225 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime/2.1.…
-e784a20cfdc57f3718eee92c7a2fb26d0fa357f698afe08743f775c9b5cd254e | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime/2.1.…
+35721991436c706fd383c528f986194686ed3dd3521ccb5c86d5c46e5a44c780 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime-ktx/…
+64e3f779a18236830372ed5bf1a089dac48b8145275f9515af3c596b57e82a48 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime-ktx/…
4e81d8ab584a184e2781c6f0d50b6f00acd11741f759270e7c976ef3307d78a7 | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime/2.1.…
bce14e26f30639013ade5bed40604bf5161535af098ed7f61972cd62235658be | https://dl.google.com/dl/android/maven2/androidx/paging/paging-runtime/2.1.…
c3a321133e616b46cf5ad07191aeebf4affdb73abee455851d39f7b4db7acb36 | https://dl.google.com/dl/android/maven2/androidx/palette/palette-ktx/1.0.0/…
@@ -153,8 +149,8 @@ b447d1d44c6d982846e3a299bb8072cd6ebefbe8d47d067736cb14f9dbf44701 | https://dl.go
9789dcb6645da154854a140efb87deb853d18f4e837d5f30164acc470902a323 | https://dl.google.com/dl/android/maven2/androidx/preference/preference/1.1.…
1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd | https://dl.google.com/dl/android/maven2/androidx/print/print/1.0.0/print-1.…
62482c0594841bee24bb996abb6cb7b320a6a3b77dca9f0a0ba4fe3be5530aa7 | https://dl.google.com/dl/android/maven2/androidx/print/print/1.0.0/print-1.…
-1cadc61c970c46ac91b21968bd16bb8d2cc10fa18c80b9725d5e1425c436dd3f | https://dl.google.com/dl/android/maven2/androidx/recyclerview/recyclerview/…
-c046a7b5f4a561086d315a12bdd4d83e394c4160275bb9e3a2acff6653433957 | https://dl.google.com/dl/android/maven2/androidx/recyclerview/recyclerview/…
+5b45ea40d6a2e50f59f21bc0728130da439220c56c156d10ec0381422741c84d | https://dl.google.com/dl/android/maven2/androidx/recyclerview/recyclerview/…
+1ebd58a3223ccc98c4198aee81b5c9ee7dc7d8fe86b068a9f1f0e426d5cab06a | https://dl.google.com/dl/android/maven2/androidx/recyclerview/recyclerview/…
2b130dd4a1d3d91b6701ed33096d389f01c4fc1197a7acd6b91724ddc5acfc06 | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.2.5/roo…
fbb37fcf02b35ba7a909fffb52ce4ccb36874f03c1f927f6338b68ef9f1d6b7a | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.2.5/roo…
acf5246e0ff90e057d24421ca2dea2bb578a44c882d58af0125e28343ee8c5c9 | https://dl.google.com/dl/android/maven2/androidx/room/room-ktx/2.2.5/room-k…
@@ -208,8 +204,8 @@ b50e84e635decb0a8ffb4f5955d62acdcacaf6a0b5e26983e1b6731235c5eb3f | https://dl.go
65c142c4454fda6e481ec896232b66106f84dd56ef2336e29448681e689c9cb1 | https://dl.google.com/dl/android/maven2/androidx/test/services/test-service…
2838e9d961dbffefbbd229a2bd4f6f82ac4fb2462975862a9e75e9ed325a3197 | https://dl.google.com/dl/android/maven2/androidx/test/uiautomator/uiautomat…
e134946ac5916554d8e7873f4b59034ec039138cc118a84ed1e9f700628163da | https://dl.google.com/dl/android/maven2/androidx/test/uiautomator/uiautomat…
-cd96f2448409d03e190056c96e1fe5f521aa67602ab52a5e41dcec2c94218f2a | https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.3.…
-841ff952f002177c2573b3869f366d02b5e40cd7a22e73d6521febccdb0e9d6d | https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.3.…
+f8b4d0aa87945ebabf121813d844b4819bdbfea70bd42823c0d1468a8ec62dbf | https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.4.…
+0c2c823a5dec79e6127867706502cd30d6c001ae8ae5b359678db4a8bf24cb60 | https://dl.google.com/dl/android/maven2/androidx/transition/transition/1.4.…
76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8 | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
276a20116b705fb75b9003ee9496c56f6fd3b32375fb232472811eba60a040bd | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26 | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
@@ -220,12 +216,12 @@ c729c7be0cc06323bda829d460666e79dbd43b799a21089a44bd3b293dc253b5 | https://dl.go
1f72f836339d03c6eb013f65075e76ca87075a577578eb4f95f74a3a5d253128 | https://dl.google.com/dl/android/maven2/androidx/viewpager/viewpager/1.0.0/…
e95c0031d4cc247cd48196c6287e58d2cee54d9c79b85afea7c90920330275af | https://dl.google.com/dl/android/maven2/androidx/viewpager2/viewpager2/1.0.…
4063bca7fe94fe65c98f4168f97ae10e02da0248598ad3ac21c432c7f608a17a | https://dl.google.com/dl/android/maven2/androidx/viewpager2/viewpager2/1.0.…
-290d2e9c1a22388b3f0c3dbc204a6176f8c49174126de884820befa83899f129 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.4.…
-3eb66e171b40c9cd2a9b9d9cd61a62d90e4a515491619a8d0a95e98866624b97 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.4.…
-7801441cb973fb007ef311d3db35c3b3c9d011cef890357e7ca33890833354e5 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.4.0/wo…
-0ed72c9c5a7be5b0004f226a42fa519093d49985c3eaa1a15b1563f94e9eddda | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.4.0/wo…
-dc1d9f743c59ee08c605aa924fc20819b6a0b734338e0a95af1943c3cd806e23 | https://dl.google.com/dl/android/maven2/androidx/work/work-testing/2.4.0/wo…
-0aa7bb81b26d756a63d83890202851736728c247da6ffe790c82dbbd3b373bdd | https://dl.google.com/dl/android/maven2/androidx/work/work-testing/2.4.0/wo…
+64d0a096e7bcedaf551200ddc8bf3e753cc2ee9a5b1a61db1be4904c0a4b35a9 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.5.…
+9a8e4dd71a3cc14c75307eb6661cbad2ae398db7d57486c713ac870208599fdf | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.5.…
+59cdbf1311e901650b17b8414f1e2a9443813a099d3c58fe9ba0ae6a00bed18f | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.5.0/wo…
+83a0dfa8d6330878809e2af1e097f794c8adcb86bf4ed9a85f59a699beb345a4 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.5.0/wo…
+2305bf7e4ad9abdf8e3be8c4c46ab4592d1c7a1ba65e9c9fbebb03058e902da3 | https://dl.google.com/dl/android/maven2/androidx/work/work-testing/2.5.0/wo…
+7f2ae1b6168a17f9c83f32334c8a7cf6503ce3682aa03f42e02fec2eb553db62 | https://dl.google.com/dl/android/maven2/androidx/work/work-testing/2.5.0/wo…
d2ff1905ff7e7cbed7ecce20408a76b69a52d52fdf655b696ba49007c61a0e11 | https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary…
ec6fe50839c05802cc262ec5611e160d17dff69c5a634bb322b27341f9176e9d | https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary…
6f80ef912434a84425977a90b41ab26259f7d0c953edaf90039e7d01d44383ab | https://dl.google.com/dl/android/maven2/com/android/installreferrer/install…
@@ -350,765 +346,272 @@ efe2431a01a188d3037d02a08e60900ec7406de626e4bd5b4995f28d409c0ebd | https://dl.go
24bd1b4a8f81aea76ae30054df6343b5c0abc27024a5f6fb9c6ee7d4ffb86533 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-measur…
d7a2ff3a2fdbd0801f832df3de81dab06d9db7e4a57dfa6d768e7c6e5fa22280 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messag…
79b705ecf5140d3a2601b44ef058b4588878432eb6fb2f9d65da0551cb0a8e20 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messag…
-f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902 | https://jcenter.bintray.com/backport-util-concurrent/backport-util-concurre…
-770471090ca40a17b9e436ee2ec00819be42042da6f4085ece1d37916dc08ff9 | https://jcenter.bintray.com/backport-util-concurrent/backport-util-concurre…
-2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3 | https://jcenter.bintray.com/classworlds/classworlds/1.1-alpha-2/classworlds…
-0cc647963b74ad1d7a37c9868e9e5a8f474e49297e1863582253a08a4c719cb1 | https://jcenter.bintray.com/classworlds/classworlds/1.1-alpha-2/classworlds…
-f6b9fe1101896f068d64bcad7b5927cbab59c5ab6b7efe96e72139d68ecc27f5 | https://jcenter.bintray.com/com/adjust/sdk/adjust-android/4.18.3/adjust-and…
-439a641e67b8e504eeb29e3f4704eac42b660c3f83cff9be31105ddf7caac755 | https://jcenter.bintray.com/com/adjust/sdk/adjust-android/4.18.3/adjust-and…
-9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05 | https://jcenter.bintray.com/com/almworks/sqlite4java/sqlite4java/0.282/sqli…
-2d4cdc52be79184386d74333d1c4466b7960f83505bfd5e596e76c5ab6ee3bbf | https://jcenter.bintray.com/com/almworks/sqlite4java/sqlite4java/0.282/sqli…
-256ff34118ab292d1b4f3ee4d2c3e5e5f0f609d8e07c57e8ad1f51c46d4fbb46 | https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.8.7/j…
-0d8f415d56320fbe3883ab7adee73bbb2c9a69c2a49af3608fd6b1efa15d8b5a | https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.8.7/j…
-3b51994c1a3a29c2c89728226c0be14b69888a1bb0ef311f8d65904cdfbd9358 | https://jcenter.bintray.com/com/fasterxml/jackson/jackson-parent/2.8/jackso…
-b9b8f388fd628057b1249756468b86726c8fd5816ce14d313cb40003a509beeb | https://jcenter.bintray.com/com/fasterxml/oss-parent/27/oss-parent-27.pom
-def9b4225fa37219e18f81d01f0e52d73dca1257a38f5475be9dd58f87736510 | https://jcenter.bintray.com/com/github/gundy/semver4j/0.16.4/semver4j-0.16.…
-32001db2443b339dd21f5b79ff29d1ade722d1ba080c214bde819f0f72d1604d | https://jcenter.bintray.com/com/github/gundy/semver4j/0.16.4/semver4j-0.16.…
-cdf16ef8f5b8023d003ce3cc1b0d51bda737762e2dab2fedf43d1c4292353f7f | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
-d1e7dbe189b9dbfbfc31709590b65c766d654324de1ac886427333c5ff9adb0e | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
-7b0aa6ed7553597ce0610684a9f7eca8021eee218f2e2f427c04a7fbf5f920bd | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
-d46777ad3ea8bca73491b2e02fc85b3664486abf5314cc4dc6740908bd855330 | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
-97db1709f57b91b32edacb596ef4641872f227b7d99ad90e467f0d77f5ba134a | https://jcenter.bintray.com/com/google/auto/auto-common/0.8/auto-common-0.8…
-0ee24e09ab5d77f45545bf487868f45cf742127c9a77a2c0a92b006986b5aa9d | https://jcenter.bintray.com/com/google/auto/auto-common/0.8/auto-common-0.8…
-c98f1b0978cfd24712c27388e040c50ce0692252b3aa9448603d9efa05ebe8a8 | https://jcenter.bintray.com/com/google/auto/auto-parent/3/auto-parent-3.pom
-31a44f00ba213f7a1245809d6ba7bffed40c8dd7d571f32016caf8732a926961 | https://jcenter.bintray.com/com/google/auto/auto-parent/5/auto-parent-5.pom
-05f740c6648165db00cf618dd56c200c4725e358e6d54f5853e0bec15734ea0a | https://jcenter.bintray.com/com/google/auto/auto-parent/6/auto-parent-6.pom
-a46426fccb5d32705ad9cbbc996f786bd048cc8cbdd21db046500169f15a4356 | https://jcenter.bintray.com/com/google/auto/auto-parent/7/auto-parent-7.pom
-e422d49c312fd2031222e7306e8108c1b4118eb9c049f1b51eca280bed87e924 | https://jcenter.bintray.com/com/google/auto/service/auto-service/1.0-rc4/au…
-51752efb14151ec2d39c8581dadce8ef8b7c58b90f5eaca3f596998acb1ea87c | https://jcenter.bintray.com/com/google/auto/service/auto-service/1.0-rc4/au…
-b48b04ddba40e8ac33bf036f06fc43995fc5084bd94bdaace807ce27d3bea3fb | https://jcenter.bintray.com/com/google/auto/value/auto-value-annotations/1.…
-1c76cd462fc96e7aa96dc70ce82f0d54063d6df16db35c9c7d9cc0d1a99d3fff | https://jcenter.bintray.com/com/google/auto/value/auto-value-annotations/1.…
-3677f725f5b1b6cd6a4cc8aa8cf8f5fd2b76d170205cbdc3e9bfd9b58f934b3b | https://jcenter.bintray.com/com/google/auto/value/auto-value-annotations/1.…
-6fc498858e0cd1387595af38957820cb341d1e687ccf753e1cbd982f46ef4fc3 | https://jcenter.bintray.com/com/google/auto/value/auto-value-annotations/1.…
-27b640c82179f5cff62009c0b72033d9bc60f60e9902a66802274b7fe37fc81c | https://jcenter.bintray.com/com/google/auto/value/auto-value-parent/1.6.2/a…
-b9d2d3aa6919d5f07e18c7cea942be9aef3b650a8f1e68f33c854a25c09c2049 | https://jcenter.bintray.com/com/google/auto/value/auto-value-parent/1.6.5/a…
-feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.…
-1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468 | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.…
-02c12c3c2ae12dd475219ff691c82a4d9ea21f44bc594a181295bf6d43dcfbb0 | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.…
-766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7 | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.…
-19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe | https://jcenter.bintray.com/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.…
-8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27 | https://jcenter.bintray.com/com/google/code/gson/gson-parent/2.8.5/gson-par…
-233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81 | https://jcenter.bintray.com/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
-b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092 | https://jcenter.bintray.com/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
-3aa576b5671d0e26d83d7fdb7186810b5672f00bf8e72184260bcc7c2d7dc07a | https://jcenter.bintray.com/com/google/crypto/tink/tink/1.3.0-rc2/tink-1.3.…
-5b9a11c11183d011de9a9a5490962d78a4d4bfe7579b0c5be4afb18a222e3f41 | https://jcenter.bintray.com/com/google/crypto/tink/tink/1.3.0-rc2/tink-1.3.…
-550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64 | https://jcenter.bintray.com/com/google/dagger/dagger/2.24/dagger-2.24.jar
-477bdf6579ecc9cc8f99a565203f6244914f289d87e7efbdf96243fa58f9df4c | https://jcenter.bintray.com/com/google/dagger/dagger/2.24/dagger-2.24.pom
-6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
-5e0258ea1ba4e51a133742680bc22448f7ab214be4073e8619f645ef1be42dd5 | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
-3edce6b711ba368efe16b9b7aacb0214fbd648414cb9b965953a2e7ed89a819a | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
-357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
-8d175561619289a527573cfbdcf872eb5c1216cf9ab692a0ef3dba6d793f63b4 | https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2…
-c460902ddf5ece68832c6b271ce52a0928b05cf3a6ac81a8f548c73cbd541138 | https://jcenter.bintray.com/com/google/errorprone/error_prone_parent/2.2.0/…
-767525d9a81129cd081968382980336327be4162b1e2251a182911daa733c123 | https://jcenter.bintray.com/com/google/errorprone/error_prone_parent/2.3.1/…
-8d3b5b9fa211979e9c425e989825c07743d2eb4dc8c20ec61de0f5b3dc1a6333 | https://jcenter.bintray.com/com/google/errorprone/error_prone_parent/2.3.2/…
-a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26 | https://jcenter.bintray.com/com/google/guava/failureaccess/1.0.1/failureacc…
-e96042ce78fecba0da2be964522947c87b40a291b5fd3cd672a434924103c4b9 | https://jcenter.bintray.com/com/google/guava/failureaccess/1.0.1/failureacc…
-f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04 | https://jcenter.bintray.com/com/google/guava/guava-parent/26.0-android/guav…
-317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696 | https://jcenter.bintray.com/com/google/guava/guava-parent/27.0.1-jre/guava-…
-f31a5846bd9e14a4c374da1b9b146a5715ecdca925e071e1d2bf4da2daaded90 | https://jcenter.bintray.com/com/google/guava/guava-parent/28.1-jre/guava-pa…
-e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4 | https://jcenter.bintray.com/com/google/guava/guava/27.0.1-jre/guava-27.0.1-…
-6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36 | https://jcenter.bintray.com/com/google/guava/guava/27.0.1-jre/guava-27.0.1-…
-30beb8b8527bd07c6e747e77f1a92122c2f29d57ce347461a4a55eb26e382da4 | https://jcenter.bintray.com/com/google/guava/guava/28.1-jre/guava-28.1-jre.…
-74af0e8dd935894ce9bcb8e2842dd0001581b84cb6a7751c3ef9314011399ba4 | https://jcenter.bintray.com/com/google/guava/guava/28.1-jre/guava-28.1-jre.…
-e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069 | https://jcenter.bintray.com/com/google/guava/listenablefuture/1.0/listenabl…
-53873caf26bc1ed8a567ea6c939ab2aaa3f47a5e32d5cade95ddf5080d23238a | https://jcenter.bintray.com/com/google/guava/listenablefuture/1.0/listenabl…
-b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99 | https://jcenter.bintray.com/com/google/guava/listenablefuture/9999.0-empty-…
-18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b | https://jcenter.bintray.com/com/google/guava/listenablefuture/9999.0-empty-…
-2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6 | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc…
-f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc…
-21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.3/j2objc…
-5faca824ba115bee458730337dfdb2fcea46ba2fd774d4304edbf30fa6a3f055 | https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.3/j2objc…
-c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd | https://jcenter.bintray.com/com/google/jimfs/jimfs-parent/1.1/jimfs-parent-…
-c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd | https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar
-efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44 | https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1.pom
-32ff2307dafc658d0b55b2ad841d625aea5606bb9b0316605165cd6980503243 | https://jcenter.bintray.com/com/google/protobuf/protobuf-bom/3.10.0/protobu…
-74ee43b09e711b13d568811e12f33bd16e6087b15f1aeded22b0dfe89ae76856 | https://jcenter.bintray.com/com/google/protobuf/protobuf-bom/3.11.4/protobu…
-619b0b0dc344cb141e493cbedc5687c8fb7c985e609a1b035e621bfab2f89021 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.10.0/p…
-146660182d07798ced06fa8e8ae3b9faa90aa48cf3c6adfc67db9371188ba502 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.10.0/p…
-161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.10.0/protob…
-b404c1b093ec9dea888e02c8dfe8662759586b94efa4f97061cdfc1bbfa15af0 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.10.0/protob…
-8cacea2f7a042dabae295c509dcdbfe32a49aa3708eec6ddb8efd8593aa0b4a3 | https://jcenter.bintray.com/com/google/protobuf/protobuf-javalite/3.11.4/pr…
-1aa38c0b0891b910e84642c5116bb1b54d86a5959f37c9c38a34ede600bdd55d | https://jcenter.bintray.com/com/google/protobuf/protobuf-javalite/3.11.4/pr…
-6dd84a508125fffdefbd583fae12bf166aa902511b570ca54fa9efa45f6dfe80 | https://jcenter.bintray.com/com/google/protobuf/protobuf-parent/3.10.0/prot…
-c3e2aee04dd8698f8b21ce635c318f8964d52fc9ca490a01a64cdc7a6c44d362 | https://jcenter.bintray.com/com/google/protobuf/protobuf-parent/3.11.4/prot…
-bba7724e02a997cec38213af77133ee8e24b0d5cf5fa7ecbc16a4fa93f11ee0d | https://jcenter.bintray.com/com/google/zxing/core/3.3.0/core-3.3.0.jar
-ca1c3e4c4848773d4e5afa301c12bc18aa4b26d2475ff6961ce026f2d940aabf | https://jcenter.bintray.com/com/google/zxing/core/3.3.0/core-3.3.0.pom
-7c6951b21684f68ac4f6983d26e0f0b01ab5e7066f8b74b4acaff6f638ed1ff6 | https://jcenter.bintray.com/com/google/zxing/zxing-parent/3.3.0/zxing-paren…
-2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439 | https://jcenter.bintray.com/com/googlecode/json-simple/json-simple/1.1/json…
-47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab | https://jcenter.bintray.com/com/googlecode/json-simple/json-simple/1.1/json…
-757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76 | https://jcenter.bintray.com/com/googlecode/juniversalchardet/juniversalchar…
-7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b | https://jcenter.bintray.com/com/googlecode/juniversalchardet/juniversalchar…
-e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab | https://jcenter.bintray.com/com/ibm/icu/icu4j/53.1/icu4j-53.1.jar
-a0700d84efe7cc3103557bd0522f9443681b96ba9559c4bb7f9dc9bf35243485 | https://jcenter.bintray.com/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
-a6e546ac89a9701ed5158082e49ad9b41accade443f02ac41f46986472f4a5cc | https://jcenter.bintray.com/com/jakewharton/disklrucache/2.0.2/disklrucache…
-ef8ee116b3dbdc0115b4b27be60a02d1d3c7a6f2803b2d79cd09ca5dd72ebb9a | https://jcenter.bintray.com/com/jakewharton/disklrucache/2.0.2/disklrucache…
827f06556b7fa599f29a48a5277df39ca3dce5080d4ea6f9ea1f9c7b6b78bb7a | https://jcenter.bintray.com/com/jraska/falcon/2.1.1/falcon-2.1.1.aar
ee569cafb906e7d637fc3c80be1aaf2809e5ee8ccfc1c0169886c664a74d5dc5 | https://jcenter.bintray.com/com/jraska/falcon/2.1.1/falcon-2.1.1.pom
-850c01bbafd141a724717da4e3949414a7d9c7817af55609881295d327196102 | https://jcenter.bintray.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-…
-a5c9bd6f2b3674883e57a8d3300772bb7ca98d8a1388eb8e49f197710dc5e0b8 | https://jcenter.bintray.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-…
-2d07df02a6a005d1aef3ad79536876765f4ed5f4ad59ca8cc33fd98274ad8b39 | https://jcenter.bintray.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.…
-95528938a88d19291e5f806201d15c70f7b6699ac554a7688c2677f8104eb9f6 | https://jcenter.bintray.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.…
-816dfed0ce6cc5d2369188b0fc93a4a0d3190b0f98aa61558e54910de3d82daa | https://jcenter.bintray.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-…
-c6035475a5bcbfe4d33dede02de3e91234e25ca7b8d75595fac8cb52fd6f3131 | https://jcenter.bintray.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-…
-1690340a222279f2cbadf373e88826fa20f7f3cc3ec0252f36818fed32701ab1 | https://jcenter.bintray.com/com/squareup/javapoet/1.10.0/javapoet-1.10.0.pom
-83f0fd4baebec3bf29ee3ad2c024b3065ddef825a5aa29f7dcf5c189f9fa2962 | https://jcenter.bintray.com/com/squareup/javapoet/1.12.1/javapoet-1.12.1.jar
-a71ac3d8f27cb9ad32c87b5d8959f22d671aeb460c7a355d09f577e4c57e4c5f | https://jcenter.bintray.com/com/squareup/javapoet/1.12.1/javapoet-1.12.1.pom
-f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e | https://jcenter.bintray.com/com/squareup/javawriter/2.1.1/javawriter-2.1.1.…
-d47fc646324c22c66f2b0e0e743c850dde9a51990c53925e7501d960f2e8df84 | https://jcenter.bintray.com/com/squareup/javawriter/2.1.1/javawriter-2.1.1.…
-fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0 | https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.…
-e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0 | https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.…
-8085eb4c8b1ece4f32259b22f26bf880bc47b74f548e29010b0146aa6b38f24b | https://jcenter.bintray.com/com/squareup/kotlinpoet/1.6.0/kotlinpoet-1.6.0.…
-7a196c990b8f32a03df2d22c88ca5ed992c039d45e5b3876263608243f433347 | https://jcenter.bintray.com/com/squareup/kotlinpoet/1.6.0/kotlinpoet-1.6.0.…
-d9239c3ce555c87165b8ed060f0dfcd9e58d25a947d7b1bd669dcf37f4ab7deb | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android-core…
-a39975d3ba701157babb356b23ab160493c98939a2cf7656c71308669bc80e1a | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android-core…
-c05f763a83bfcf56a763b0e99ba18ac5b3eef2dbcd7d87202fb0fdce75ab91c8 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android/2.4/…
-6975ee444e993c1b413fe64fbb2b9e7c20f131c7135c78c94d11c0cf927255f1 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-android/2.4/…
-14ba5af729f71885e430461026b850b091cd85a0a61b65fa99c4e99625031ddc | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-a89dc25a9710f6b95378046eecc822e81cdbaee2a3e19e0140a138eccf3bfe27 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-d3f10fac2c66505f1fbf59ec5bb29d914e4dffb184672422fabc57bc6fc1f6b3 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-1fdcfd4ce950fb6f3f57f72362f365bc99124fecb5889662c3e81a1c4de44bb8 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-182a559942ff385a603369a975f13f9179c079cc10ca82162b90b6647d744a1d | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-66ef4959e7bff7f963f93e730ce4ade81eb4ff767043e6220797d588e3ef9bf6 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-526533e2ac8f9f4b070e515b5292cb1780e35f6b40a95d67ba83f26040283770 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-a7a68702f1974981f57151d2759036ca19461db2ee9378d2bc551aba92c1f417 | https://jcenter.bintray.com/com/squareup/leakcanary/leakcanary-object-watch…
-4ff14ae10ac34c568242b26cfcd9d6562309fea29f30fe0ec17104ee0656aa57 | https://jcenter.bintray.com/com/squareup/leakcanary/plumber-android/2.4/plu…
-7231549464e6364f6f5072fdcf579e79094b8e0c01fa091ae89cfb0d7172c7bd | https://jcenter.bintray.com/com/squareup/leakcanary/plumber-android/2.4/plu…
-5a073a5db384c48bd6795a3b752477e9911f68edde255acbeca5b46200c9288e | https://jcenter.bintray.com/com/squareup/leakcanary/shark-android/2.4/shark…
-adc8f2a0690cd2f6b7cb95f5721c83197fade090c5f963d395e5d24b788e517a | https://jcenter.bintray.com/com/squareup/leakcanary/shark-android/2.4/shark…
-c1f64a7e86c7f95d8de59d2a1d70dbde5966fb1522910f43bba45a7a06d0a0ae | https://jcenter.bintray.com/com/squareup/leakcanary/shark-graph/2.4/shark-g…
-ff947605e573286ad4906f1f1fcff385c4dd398e2eb12d124d0db18dc919c181 | https://jcenter.bintray.com/com/squareup/leakcanary/shark-graph/2.4/shark-g…
-78163bb080d2b0a15ccb0d053559ad0b7cb852391b1c79e0b85ba94c43a59bc7 | https://jcenter.bintray.com/com/squareup/leakcanary/shark-hprof/2.4/shark-h…
-d51522e8a7b40383b6cdc876580aa8083a13d739e5c235940e9fab82cbda5a1f | https://jcenter.bintray.com/com/squareup/leakcanary/shark-hprof/2.4/shark-h…
-d43ca38b1ddc1647121863e8051592ff31054f1e93931fa96e4b0bbd6446184b | https://jcenter.bintray.com/com/squareup/leakcanary/shark-log/2.4/shark-log…
-240169ea8133ac80974489ba3047bc223445e6b8e088a15d29393a54a0db3171 | https://jcenter.bintray.com/com/squareup/leakcanary/shark-log/2.4/shark-log…
-a257a1c2def6a13247b53d2333a36d4aebb354191950bb6976b392b18c2853ff | https://jcenter.bintray.com/com/squareup/leakcanary/shark/2.4/shark-2.4.jar
-f94c218942455b62621a38dba9f4d4bc80bec6883cf2ef230e405c5b180f28d9 | https://jcenter.bintray.com/com/squareup/leakcanary/shark/2.4/shark-2.4.pom
-ba48439634f5e285de35f6135880c485934b5d45bb26f42cd9d9636f3c4ff56d | https://jcenter.bintray.com/com/squareup/okhttp3/mockwebserver/4.9.0/mockwe…
-26c9d5c003dfe87dfd1453f285955a91fc51ca17e0b31243860bbe44263e5255 | https://jcenter.bintray.com/com/squareup/okhttp3/mockwebserver/4.9.0/mockwe…
-dbc2bb04ecb002b9f4046263ccad996f4a3d3c59a0cc98837e300a6700571f7c | https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/4.9.0/okhttp-4.9.0.…
-4f8992dde784509e80917cabbc8406a7137e5f2ba2c1ae5b7250fc182a45bd88 | https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/4.9.0/okhttp-4.9.0.…
-e58c97406a6bb1138893750299ac63c6aa04b38b6b49eae1bfcad1a63ef9ba1b | https://jcenter.bintray.com/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar
-fd621988f7f6957025735dc6dd090b00a20f3a3bb8d77ca79036077f629b140b | https://jcenter.bintray.com/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom
-4496b06e73982fcdd8a5393f46e5df2ce2fa4465df5895454cac68a32f09bbc8 | https://jcenter.bintray.com/com/squareup/okio/okio/2.8.0/okio-2.8.0.jar
-26214068fd4c7f437ac8fe8576802a9a9dc151c457582807ad9af2af2e8c9481 | https://jcenter.bintray.com/com/squareup/okio/okio/2.8.0/okio-2.8.0.pom
-1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4 | https://jcenter.bintray.com/com/sun/activation/all/1.2.0/all-1.2.0.pom
-993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce | https://jcenter.bintray.com/com/sun/activation/javax.activation/1.2.0/javax…
-f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e | https://jcenter.bintray.com/com/sun/activation/javax.activation/1.2.0/javax…
-6443e10ba2e259fb821d9b6becf10db5316285fc30c53cec9d7b19a3877e7fdf | https://jcenter.bintray.com/com/sun/istack/istack-commons-runtime/3.0.7/ist…
-6d704e450a816a45bce806ba22c22fe83d8e8dcf7a71517603de630a1726809f | https://jcenter.bintray.com/com/sun/istack/istack-commons-runtime/3.0.7/ist…
-6f83d3c85fdca9ef24010cb2f652aab1a508bff6331c087b60d0301782b78c6f | https://jcenter.bintray.com/com/sun/istack/istack-commons/3.0.7/istack-comm…
-c2204f54b43593808c9af6502865ee71679823156dabdef341e71d35662c7aa0 | https://jcenter.bintray.com/com/sun/xml/bind/jaxb-bom-ext/2.3.1/jaxb-bom-ex…
-f699ef37ec7966e284742dfca83075221179041a9a49aef7991280192604462d | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-par…
-b56383eb4d43498b145d379e2a93d5fcdcd8ff9291f89b58b82cb91658dbf14c | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.3.1/…
-7a8473e935504841c606686d84e9c017a739ac2c144fde687aa003a7dd44de7f | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-txw-parent/2.3.1/jaxb…
-785861db11ca1bd0d1956682b974ad73eb19cd3e01a4b3fa82d62eca97210aec | https://jcenter.bintray.com/com/sun/xml/fastinfoset/FastInfoset/1.2.15/Fast…
-bbc796ab84a6778a751c2eff1136078abd2b4d35b5047062804f3582ef3c42c8 | https://jcenter.bintray.com/com/sun/xml/fastinfoset/FastInfoset/1.2.15/Fast…
-cfb8cdad4c0dd05ed8cacbe146bf1718764403947b9de8348e1bfd42f62ea73e | https://jcenter.bintray.com/com/sun/xml/fastinfoset/fastinfoset-project/1.2…
-4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569 | https://jcenter.bintray.com/commons-codec/commons-codec/1.10/commons-codec-…
-bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb | https://jcenter.bintray.com/commons-codec/commons-codec/1.10/commons-codec-…
-cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 | https://jcenter.bintray.com/commons-io/commons-io/2.4/commons-io-2.4.jar
-b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 | https://jcenter.bintray.com/commons-io/commons-io/2.4/commons-io-2.4.pom
-daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636 | https://jcenter.bintray.com/commons-logging/commons-logging/1.2/commons-log…
-c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20 | https://jcenter.bintray.com/commons-logging/commons-logging/1.2/commons-log…
-952cbfcc5f21beeccb5925cc5ba648af09839258441dd44d087d64a57d34e87a | https://jcenter.bintray.com/de/undercouch/gradle-download-task/4.0.2/gradle…
-0161c5a76ef500bcfe727e95e34974c0482ad87793d821876bf3fa95704c1407 | https://jcenter.bintray.com/de/undercouch/gradle-download-task/4.0.2/gradle…
-37001f3a481c72e46b9f94454f7c3a684089f1933638e512c8c6f036800ad619 | https://jcenter.bintray.com/io/gitlab/arturbosch/detekt/detekt-gradle-plugi…
-d35101cfafa78658705ce74a06b8db75b2e624cc8634807672ca8bacb245354f | https://jcenter.bintray.com/io/gitlab/arturbosch/detekt/detekt-gradle-plugi…
-54e20f25454e627db4623ebbd9972983f917afb803e971e02103717a7caa78b8 | https://jcenter.bintray.com/io/mockk/mockk-agent-api/1.10.0/mockk-agent-api…
-f77d7558661ffaca21d715ec59bd50ee47b4120fb1c1304547ffd64996902d35 | https://jcenter.bintray.com/io/mockk/mockk-agent-api/1.10.0/mockk-agent-api…
-d2b9f0388378687808eb387d10dbd90ce70134f5e5fe71dd88384e7e14f672a8 | https://jcenter.bintray.com/io/mockk/mockk-agent-common/1.10.0/mockk-agent-…
-b5547a1a09948b33b9b41aa041084b0a34c92ec41bb91ca8d0ce8ad31486a8bc | https://jcenter.bintray.com/io/mockk/mockk-agent-common/1.10.0/mockk-agent-…
-037f043baed4f206a9e585723244174087f761d1fb2979f16f9956a580e49271 | https://jcenter.bintray.com/io/mockk/mockk-agent-jvm/1.10.0/mockk-agent-jvm…
-ed3d9585915f9fcc24d5e754e577b0a723b986376dce62dac539c7f75fbcbcaa | https://jcenter.bintray.com/io/mockk/mockk-agent-jvm/1.10.0/mockk-agent-jvm…
-7d04767dc397595b1de24b3331ef0256fe91e37941d7a8cd7a73745511bfaae1 | https://jcenter.bintray.com/io/mockk/mockk-common/1.10.0/mockk-common-1.10.…
-fcd746dc322389a5d355e13283a855bb739e738d8c4b61dc48d95262ad3d31f3 | https://jcenter.bintray.com/io/mockk/mockk-common/1.10.0/mockk-common-1.10.…
-c25ae05f9ec1ab007663c758c771eccc8e181773d22163e5ec814b042d8d81d0 | https://jcenter.bintray.com/io/mockk/mockk-dsl-jvm/1.10.0/mockk-dsl-jvm-1.1…
-a246a76e38c2f3a81745cffd9bc7354aa16d19b4b9857309d5796e38887ca6ac | https://jcenter.bintray.com/io/mockk/mockk-dsl-jvm/1.10.0/mockk-dsl-jvm-1.1…
-553bed792babf8263086a873aa2903302e01c718c47641793eb9853873c9b1d1 | https://jcenter.bintray.com/io/mockk/mockk-dsl/1.10.0/mockk-dsl-1.10.0.jar
-8f2efb576c736fedfd789680d733ca5bdc5aeaeff9510efcc4baaac3cc404290 | https://jcenter.bintray.com/io/mockk/mockk-dsl/1.10.0/mockk-dsl-1.10.0.pom
-6216f3b74600f054392a49563498b03cb11b47faf36d06f5a4801ef02cb7f0e5 | https://jcenter.bintray.com/io/mockk/mockk/1.10.0/mockk-1.10.0.jar
-7f34e3d5e788f85616c796223ce0a1d591889ecb926f497da2d1ada02459b346 | https://jcenter.bintray.com/io/mockk/mockk/1.10.0/mockk-1.10.0.pom
-a98c4be3c0e886163e5940c04217be1bd571bbf42e5dbe4e098830b186743fd5 | https://jcenter.bintray.com/io/sentry/sentry-all/1.7.10/sentry-all-1.7.10.p…
-f014af749024c57989ca2aa51b0a986f9d86d2669d074c1dee068a8f8da19562 | https://jcenter.bintray.com/io/sentry/sentry-android/1.7.10/sentry-android-…
-2c8b59d68ba5e67fe784e7295f1594cb1e6d2233d3d741500d5fedfb515762ab | https://jcenter.bintray.com/io/sentry/sentry-android/1.7.10/sentry-android-…
-3a0ae5d7db7b65ccb7e0be7b4ac5bb4bce8105f2c5aefc01bb78c2a1dd17abc8 | https://jcenter.bintray.com/io/sentry/sentry/1.7.10/sentry-1.7.10.jar
-17c98ced8aadd526b0a5219d46f9e8b9463f2600b9907e7418d1abe8676c0e65 | https://jcenter.bintray.com/io/sentry/sentry/1.7.10/sentry-1.7.10.pom
-74fa208043740642f7e6eb09faba15965218ad2f50ce3020efb100136e4b591c | https://jcenter.bintray.com/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.jar
-953b116521a73575eee990e3f2c36a892fb088bb2d9a3027c82193cb7a013ef7 | https://jcenter.bintray.com/it/unimi/dsi/fastutil/7.2.0/fastutil-7.2.0.pom
-43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393 | https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/jav…
-da2926f3c8be898643cc10acdec6de0b0351a57fb2735770fa0177b06ade71b9 | https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/jav…
-e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b | https://jcenter.bintray.com/javax/annotation/javax.annotation-api/1.3.2/jav…
-46a4a251ca406e78e4853d7a2bae83282844a4992851439ee9a1f23716f06b97 | https://jcenter.bintray.com/javax/annotation/javax.annotation-api/1.3.2/jav…
-91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff | https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.jar
-943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa | https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.pom
-cd1beaa4560dc4dfdb826b9d809e464db22526dfb54264bae78a6ff7efb08e1f | https://jcenter.bintray.com/javax/xml/bind/jaxb-api-parent/2.3.1/jaxb-api-p…
-88b955a0df57880a26a74708bc34f74dcaf8ebf4e78843a28b50eae945732b06 | https://jcenter.bintray.com/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar
-12b20cf922773445c3445c2883cbf671fa982111e9bf9f875020f9313b3814b1 | https://jcenter.bintray.com/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.pom
-59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a | https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.jar
-90f163f78e3ffb6f1c7ad97de9e7eba4eea25807141b85d6d12be67ca25449c4 | https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom
-4b8532f63bdc0e0661507f947eb324a954d1dbac631ad19c8aa9a00feed1d863 | https://jcenter.bintray.com/junit/junit/4.13/junit-4.13.jar
-9a0dc4c3fa2b086e708226737ef4bb37847c3cb1ce4e203517c09f6305b2267e | https://jcenter.bintray.com/junit/junit/4.13/junit-4.13.pom
-fdff6cfa9ed9cc911c842a5d2395f209ec621ef1239d46810e9e495809d3ae09 | https://jcenter.bintray.com/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.jar
-f5655d331af6afcd4dbaedaa739b889380c771a7e83f7aea5c8544a05074cf0b | https://jcenter.bintray.com/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.pom
-95b8b357d19f63797dd7d67622fd3f18374d64acbc6584faba1c7759a31e8438 | https://jcenter.bintray.com/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.…
-c219d697fa9c8f243d8f6e347499b6d4e8af1d0cac4bbc7b3907d338a2024c13 | https://jcenter.bintray.com/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.…
-fbd052d2d4cd16f707547c468621c6b7fb842c7ec8866d012ecbc6178de1f394 | https://jcenter.bintray.com/net/bytebuddy/byte-buddy-agent/1.10.9/byte-budd…
-19907495fbc1c2316c8ebad76f07b96d101feb1a7e3c09bfe1526fd3fc6eec9d | https://jcenter.bintray.com/net/bytebuddy/byte-buddy-agent/1.10.9/byte-budd…
-6f59f847f37a7a052243e97a3b24d6e834833fca3a48d6980f96f7779fe5ff98 | https://jcenter.bintray.com/net/bytebuddy/byte-buddy-agent/1.9.7/byte-buddy…
-93d9d380779cd1768c52b4bcee82cbfaedef9a4a30de87ae06b441e1634fd38c | https://jcenter.bintray.com/net/bytebuddy/byte-buddy-parent/1.10.9/byte-bud…
-259079927014348a555c0969dbae9339c3cc33895a05ffec8e0a25dd50c82278 | https://jcenter.bintray.com/net/bytebuddy/byte-buddy-parent/1.9.7/byte-budd…
-07b9ca6e2f970cb03f4b25651df1f2fce271d491b44e0409827887786f692d4d | https://jcenter.bintray.com/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10…
-40881d4948a871159346270f36945bc29025577c6cb57f6a5dd0c7c222069dac | https://jcenter.bintray.com/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10…
-2768054be7d61c4ec6f5e660e03ee70608000fe0f46d6119eee66675fff150e9 | https://jcenter.bintray.com/net/bytebuddy/byte-buddy/1.9.7/byte-buddy-1.9.7…
ec3a75bebddbf19ff56a281cf5d1ad146169dcaa0e69d7b14f4aaba2e7775f34 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
3369726ca2b0e3736c741ff3c22e06f707a1007ff20ccc5b5ba5d0d9a01ead30 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
-24d81621f82ac29fcdd9a74116031f5907a2343158e616f4573bbfa2434ae0d5 | https://jcenter.bintray.com/net/java/dev/jna/jna-platform/5.5.0/jna-platfor…
-10569e3622e974d3e66255ba85923c125d84fa257ef2543d8ac1c658d9ebcd10 | https://jcenter.bintray.com/net/java/dev/jna/jna-platform/5.5.0/jna-platfor…
-2b9f3497218b32c399d1ecbea0b00d4f4553edcf669919ed1e1a87daa77acf87 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.aar
-5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar
-5fe81b0255978f24616d37b10608b79498a5f3073e1d9b2038d8736a831f2608 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
-281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
-30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a | https://jcenter.bintray.com/net/java/jvnet-parent/3/jvnet-parent-3.pom
-1af699f8d9ddab67f9a0d202fbd7915eb0362a5a6dfd5ffc54cafa3465c9cb0a | https://jcenter.bintray.com/net/java/jvnet-parent/5/jvnet-parent-5.pom
-26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
-7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
-f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
-31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
-75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
-2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
-cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
-5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57 | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
-d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0 | https://jcenter.bintray.com/net/sf/proguard/proguard-parent/6.0.3/proguard-…
-5358b478d82555ab57afd7fc7231d603b40f977be7ca39f40c5ec54e767eb674 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.2-1/antlr4-master-4…
-401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.3/antlr4-master-4.5…
-e831413004bceed7d915c3a175927b1daabc4974b7b8a6f87bbce886d3550398 | https://jcenter.bintray.com/org/antlr/antlr4-runtime/4.5.2-1/antlr4-runtime…
-93bac9b6bc714d559904ed43242782a8cbe543cebf0104bb3ecc1786a9cb661e | https://jcenter.bintray.com/org/antlr/antlr4-runtime/4.5.2-1/antlr4-runtime…
-a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4 | https://jcenter.bintray.com/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar
-8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384 | https://jcenter.bintray.com/org/antlr/antlr4/4.5.3/antlr4-4.5.3.pom
-da9fd92eacdf63daf0be52eb71accc10ff7943a85d7aac9ea96cf7e03ee3d3cc | https://jcenter.bintray.com/org/apache/ant/ant-launcher/1.8.0/ant-launcher-…
-08426143d37d770f3e4dae45b0870c3ab1ba512cb64418f34496025b72d16760 | https://jcenter.bintray.com/org/apache/ant/ant-launcher/1.8.0/ant-launcher-…
-ecbd655fd71d298eaf0787045b84324ce68936ad0de98c7a9c55538e539f2747 | https://jcenter.bintray.com/org/apache/ant/ant-parent/1.8.0/ant-parent-1.8.…
-0251dbb938740ace07a53675113eee753ba389db65aebc814b175af50321620e | https://jcenter.bintray.com/org/apache/ant/ant/1.8.0/ant-1.8.0.jar
-e6d920d5a1a34aaaebab1e6a82c36bbfd61f1eeaabc4534ee05d4faad56f1b7a | https://jcenter.bintray.com/org/apache/ant/ant/1.8.0/ant-1.8.0.pom
-ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d | https://jcenter.bintray.com/org/apache/apache/13/apache-13.pom
-36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494 | https://jcenter.bintray.com/org/apache/apache/15/apache-15.pom
-9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e | https://jcenter.bintray.com/org/apache/apache/16/apache-16.pom
-7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 | https://jcenter.bintray.com/org/apache/apache/18/apache-18.pom
-1933a6037439b389bda2feaccfc0113880fd8d88f7d240d2052b91108dd5ae89 | https://jcenter.bintray.com/org/apache/apache/5/apache-5.pom
-4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd | https://jcenter.bintray.com/org/apache/apache/9/apache-9.pom
-2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6 | https://jcenter.bintray.com/org/apache/commons/commons-compress/1.12/common…
-b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a | https://jcenter.bintray.com/org/apache/commons/commons-compress/1.12/common…
-467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba | https://jcenter.bintray.com/org/apache/commons/commons-parent/25/commons-pa…
-3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c | https://jcenter.bintray.com/org/apache/commons/commons-parent/34/commons-pa…
-7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a | https://jcenter.bintray.com/org/apache/commons/commons-parent/35/commons-pa…
-87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 | https://jcenter.bintray.com/org/apache/commons/commons-parent/39/commons-pa…
-c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.5.6/http…
-7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.5.6/http…
-b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client…
-61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-core/4…
-caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-parent…
-78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
-c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
-0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.5.6/httpmi…
-dfbfd6ffe2a784ca9817c46365aa7f8a578320b805bde39d6f55a0b09d8aa8ca | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.5.6/httpmi…
-f16b5ea711dfe0323454b880180aa832420ec039936e4aa75fb978748634808a | https://jcenter.bintray.com/org/apache/maven/maven-ant-tasks/2.1.3/maven-an…
-f52619bf2f5c5117f0af1c23adff3a9c8f468647be47fefc59b81dcec7e480e6 | https://jcenter.bintray.com/org/apache/maven/maven-ant-tasks/2.1.3/maven-an…
-d1e247c4ed3952385fd704ac9db2a222247cfe7d20508b4f3c76b90f857952ed | https://jcenter.bintray.com/org/apache/maven/maven-artifact-manager/2.2.1/m…
-ecf58351f8fe0c398b8b452216705bece5291b9b327d30202c16b28ac680450c | https://jcenter.bintray.com/org/apache/maven/maven-artifact-manager/2.2.1/m…
-d53062ffe8677a4f5e1ad3a1d1fa37ed600fab39166d39be7ed204635c5f839b | https://jcenter.bintray.com/org/apache/maven/maven-artifact/2.2.1/maven-art…
-f658a628efd6e0efe416b977638ba144af660fe6413f3637a4d03feb6a1ce806 | https://jcenter.bintray.com/org/apache/maven/maven-artifact/2.2.1/maven-art…
-b3005544708f8583e455c22b09a4940596a057108bccdadb9db4d8e048091fed | https://jcenter.bintray.com/org/apache/maven/maven-error-diagnostics/2.2.1/…
-228367b7569fb1462a3eb1423bc2778e2fc7fbaee3d3767890c02b8924fa1889 | https://jcenter.bintray.com/org/apache/maven/maven-error-diagnostics/2.2.1/…
-153b32f474fd676ec36ad807c508885005139140fc92168bb76bf6be31f8efb8 | https://jcenter.bintray.com/org/apache/maven/maven-model/2.2.1/maven-model-…
-62dd8e35a2c4432bb22f8250bbfe08639635599b4064d5d747bd24cf3c02fac5 | https://jcenter.bintray.com/org/apache/maven/maven-model/2.2.1/maven-model-…
-7450c3330cf06c254db9f0dc5ef49eac15502311cf19e0208ba473076ee043d6 | https://jcenter.bintray.com/org/apache/maven/maven-parent/11/maven-parent-1…
-0c5a9770ae0271dc97bcc6cb0f2e809a40ba587cdce2556f9db59912c8e158fc | https://jcenter.bintray.com/org/apache/maven/maven-parent/19/maven-parent-1…
-4ad0673155d7e0e5cf6d13689802d8d507f38e5ea00a6d2fb92aef206108213d | https://jcenter.bintray.com/org/apache/maven/maven-plugin-registry/2.2.1/ma…
-3db15325cd620c0e54c3d88b6b7ec1bac43db376e18c9bf56bd0c05402ee6be8 | https://jcenter.bintray.com/org/apache/maven/maven-plugin-registry/2.2.1/ma…
-ecaffef655fea6b138f0855a12f7dbb59fc0d6bffb5c1bfd31803cccb49ea08c | https://jcenter.bintray.com/org/apache/maven/maven-profile/2.2.1/maven-prof…
-d125b3ade9f694ae60ef835f5ae000b6ba35fba8c34bafd8b40a1961375e63fa | https://jcenter.bintray.com/org/apache/maven/maven-profile/2.2.1/maven-prof…
-24ddb65b7a6c3befb6267ce5f739f237c84eba99389265c30df67c3dd8396a40 | https://jcenter.bintray.com/org/apache/maven/maven-project/2.2.1/maven-proj…
-34af0baedaef19375b7c1a7da967e9089d5e0754647fdbe9a302590392874b77 | https://jcenter.bintray.com/org/apache/maven/maven-project/2.2.1/maven-proj…
-5fe283f47b0e7f7d95a4252af3fa7a0db4d8f080cd9df308608c0472b8f168a1 | https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/2.2.…
-9dad0f56523955b60a9903f4e8342891355d7a59c77f36a3b53cf6ff2e4df625 | https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/2.2.…
-9a9f556713a404e770c9dbdaed7eb086078014c989291960c76fdde6db4192f7 | https://jcenter.bintray.com/org/apache/maven/maven-settings/2.2.1/maven-set…
-0d25a88a1b1e44801f8912206a40ff249cb5702ee87cf3d243d5213f7bcf534f | https://jcenter.bintray.com/org/apache/maven/maven-settings/2.2.1/maven-set…
-d135cff96dcbbc8a5fab30180e557cae620373cf26941d4c738a88896a2d98ed | https://jcenter.bintray.com/org/apache/maven/maven/2.2.1/maven-2.2.1.pom
-7298feeb36ff14dd933c38e62585fb9973fea32fb3c4bc5379428cb1aac5dd3c | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-file/1.0-beta-6/wa…
-f7524cfffc9773ea75a9f7379139f00a57355e411009ea9529b7adf7ef93fde8 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-file/1.0-beta-6/wa…
-be214032de23c6b520b79c1ccdb160948e0c67ed7c11984b7ec4ca5537867b4e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-lightweight/1…
-f021eb07aebec822496f489a2d6ec5d3fa81a2717bfc8407cb0ebcaadcee2d7e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-lightweight/1…
-f095c882716d49269a806685dcb256fa6a36389b2713ac56bb758bf8693565a2 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-shared/1.0-be…
-f6775dc981540ffa10f33bd831f14608517ce38b90628e045707dd5bb5d1348e | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-http-shared/1.0-be…
-e116f32edcb77067289a3148143f2c0c97b27cf9a1342f8108ee37dec4868861 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-provider-api/1.0-b…
-85c3c8840bb21554faf159998146f7ca9ef1b951defb29ec4e8252ec463728fd | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-provider-api/1.0-b…
-340422be8f3e3c847a0a0bf944296774f6db81f2fa8b34912bc931a112a26919 | https://jcenter.bintray.com/org/apache/maven/wagon/wagon-providers/1.0-beta…
-025caec7c56a0cb4d86c45bc18ac3e23dba291e22ebceb76302a9a9b9b7183cc | https://jcenter.bintray.com/org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1…
-7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca | https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk…
-321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259 | https://jcenter.bintray.com/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk…
-0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk…
-7e4a34c7b63d879c5cec454e2e47eb1e61e271a58672e7e548659f4f23742500 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk…
-963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349 | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk…
-8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e | https://jcenter.bintray.com/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk…
-64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a | https://jcenter.bintray.com/org/checkerframework/checker-qual/2.5.2/checker…
-dc4cd438a36462d013c2338c8e206d102a322a00f33729e8955ee219859c9ede | https://jcenter.bintray.com/org/checkerframework/checker-qual/2.5.2/checker…
-9103499008bcecd4e948da29b17864abb64304e15706444ae209d17ebe0575df | https://jcenter.bintray.com/org/checkerframework/checker-qual/2.8.1/checker…
-f23376b58ed795f2ff47426ac76b996d49e3918442e5d8713e3925f889a77799 | https://jcenter.bintray.com/org/checkerframework/checker-qual/2.8.1/checker…
-51d6c4e71782e85674239189499854359d380fb75e1a703756e3aaa5b98a5af0 | https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2.4.15/groovy-al…
-fc0d535d7bdb7ca90562321c2e8e2a35c377f113c6dd0b2062282e1f4676367a | https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2.4.15/groovy-al…
-92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53 | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
-e956ab5d2eb48fabae12300d0cd2d3294d4a2a41abc2068c23cb4d60ad76cbe5 | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
-47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
-adf522f4839c35f5329ea97c407aebebfa8807b644852dc4d5cd7c97b7a6d2e0 | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.…
-18a03df16e2a184c582db7b125633c15fb7714027a84c1b532d72933dc08b81f | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-parent/1.17/an…
-4e9df546a47cf6304a1317c46870100a8726fbea11b0dd18322f957e4070973c | https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-parent/1.18/an…
-fc648dcdc404f8bf66e0583914ecf980176618201227bea114fae85043cb755e | https://jcenter.bintray.com/org/codehaus/mojo/mojo-parent/40/mojo-parent-40…
-f819cad1b15b6a7791c8b601e96bde33765e4681395807db4537d2f0dedd493b | https://jcenter.bintray.com/org/codehaus/mojo/mojo-parent/50/mojo-parent-50…
-381d72c526be217b770f9f8c3f749a86d3b1548ac5c1fcb48d267530ec60d43f | https://jcenter.bintray.com/org/codehaus/plexus/plexus-components/1.1.14/pl…
-7c758612888782ccfe376823aee7cdcc7e0cdafb097f7ef50295a0b0c3a16edf | https://jcenter.bintray.com/org/codehaus/plexus/plexus-container-default/1.…
-ef71d45a49edfe76be0f520312a76bc2aae73ec0743a5ffffe10d30122c6e2b2 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-container-default/1.…
-7c75075badcb014443ee94c8c4cad2f4a9905be3ce9430fe7b220afc7fa3a80f | https://jcenter.bintray.com/org/codehaus/plexus/plexus-containers/1.0.3/ple…
-fd9507feb858fa620d1b4aa4b7039fdea1a77e09d3fd28cfbddfff468d9d8c28 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.11/p…
-b84d281f59b9da528139e0752a0e1cab0bd98d52c58442b00e45c9748e1d9eee | https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.11/p…
-2ca121831e597b4d8f2cb22d17c5c041fc23a7777ceb6bfbdd4dfb34bbe7d997 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/1.5.15/plexus-…
-12a3c9a32b82fdc95223cab1f9d344e14ef3e396da14c4d0013451646f3280e7 | https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/1.5.15/plexus-…
-2242fd02d12b1ca73267fb3d89863025517200e7a4ee426cba4667d0172c74c3 | https://jcenter.bintray.com/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.p…
-e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 | https://jcenter.bintray.com/org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.p…
-6cc1266cf306557b4f2d09cbd8cd6e75b5ef0c5773ca4ef763d4f730df947b64 | https://jcenter.bintray.com/org/glassfish/jaxb/jaxb-bom/2.3.1/jaxb-bom-2.3.…
-45fecfa5c8217ce1f3652ab95179790ec8cc0dec0384bca51cbeb94a293d9f2f | https://jcenter.bintray.com/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runt…
-f8101b86157fbfc01949ffdc7c59ea71ca23b7ece25f6a79061fe01cb750ff00 | https://jcenter.bintray.com/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runt…
-34975dde1c6920f1a39791142235689bc3cd357e24d05edd8ff93b885bd68d60 | https://jcenter.bintray.com/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.jar
-4714d46cacf702ab2cd478d6048c5d9cc57abdb55f4c07b6b7aa72799e02d36c | https://jcenter.bintray.com/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.pom
-66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 | https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.…
-fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 | https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.…
-70f418efbb506c5155da5f9a5a33262ea08a9e4d7fea186aa9015c41a7224ac2 | https://jcenter.bintray.com/org/hamcrest/hamcrest-integration/1.3/hamcrest-…
-42f0be9bf98c12dacdcb99dd141d83d4dc5bb7c37a6f26684cd3ff2287667fba | https://jcenter.bintray.com/org/hamcrest/hamcrest-integration/1.3/hamcrest-…
-711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c | https://jcenter.bintray.com/org/hamcrest/hamcrest-library/1.3/hamcrest-libr…
-1ceb4bfb0f098ae29b935044b2363e11323313fe3ed2055df8b79737d5056277 | https://jcenter.bintray.com/org/hamcrest/hamcrest-library/1.3/hamcrest-libr…
-6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b | https://jcenter.bintray.com/org/hamcrest/hamcrest-parent/1.3/hamcrest-paren…
-852e1bf147fceab6caf7a82887dba2864d88bca6020524b67dddda073398d2f8 | https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.ag…
-c3b2f50b692f2b081d85613527917bc6812f922e1da469a11682653b16f283fd | https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.ag…
-cd2289b9f955c8064054145f3871e18101840ae73ee6b9f835aea51573506cce | https://jcenter.bintray.com/org/jacoco/org.jacoco.ant/0.8.5/org.jacoco.ant-…
-4b74fc5373ad70d387f3738ce0e9d4b170944039739e2b12a87c24202c002282 | https://jcenter.bintray.com/org/jacoco/org.jacoco.ant/0.8.5/org.jacoco.ant-…
-ad6e40d227647ddbeb4f47a04d1002299986d127b7244f8b34d7b742ba1ac1ca | https://jcenter.bintray.com/org/jacoco/org.jacoco.build/0.8.5/org.jacoco.bu…
-945818d150f89c03359ee9089568b2b83b4df4752fced02e6323f271481f0ddd | https://jcenter.bintray.com/org/jacoco/org.jacoco.core/0.8.5/org.jacoco.cor…
-2df79bbe660731df5b4f7b8d343afff59aa8b7d9d552d9c2f6e94de71eb374ef | https://jcenter.bintray.com/org/jacoco/org.jacoco.core/0.8.5/org.jacoco.cor…
-c83e687be88e74477519eb67e20cc77a98deefaed920cd2a5531863c23d95906 | https://jcenter.bintray.com/org/jacoco/org.jacoco.report/0.8.5/org.jacoco.r…
-574cc0a2a4e77a2939b2fc24cab92bca414d05d8a6ab9e48ffb8fbd7fe0ae725 | https://jcenter.bintray.com/org/jacoco/org.jacoco.report/0.8.5/org.jacoco.r…
-1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5 | https://jcenter.bintray.com/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar
-47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d | https://jcenter.bintray.com/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
-141a720ea50f39dc52148a9efab55b7ae4c5909b9c246667cfd9c9ad3e0d7f41 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-allopen/1.4.10/kotl…
-fd55a3fd6d5d8a199462dfc414749883276be93a85a1632094a1d974013041f4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-allopen/1.4.10/kotl…
-4c801ff4f5151778762ce2d57080f0cb10a4a94cb76ad24593cca35bff36da48 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
-f120750af0c9e0c6024c3c76469fd4638ef898fc5bc2d4c49f2fe17568f47b9e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
-baec7911227eec34845439c38876a2dd18eda7c15ac523655411e20e8f053138 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
-ec86adcccbb839d099b8649c5277a6fbe41d2c04b61b4b296584e7af52ae4ad1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
-55b9627bceee132f70f8124b279f618ececf8d5cb8ac97c9d30f43cc5b9b3871 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
-2ae0864b6a2db8f6fea11f56dc1f3d4fdc2d1e328a876b5679e8eace58b38577 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
-0ba48754df3bcc16fafb3e22c40a251d01115359809cf14cf5f98aef15d902e1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processi…
-ecf643b89d16fe2d6ad4a7f12755cdf10076545869229dbce43fa1f2445c21fc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processi…
-23c6aa7925e529f0a982539138c69183c038822be149605e5c704f259c1837aa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-build-common/1.4.10…
-08c7d6fdbe362cf36e9ccc5980675265fbea29721c485f197efac630eec413b6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-build-common/1.4.10…
79500b867b1194cf781ac98d5c706331a3d3ce8448437f536f8d4cc2faff50c3 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
2bad6c031302519db14517bcc33af09f137845de40e5b223b778e8a38c561fd7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-c0d023cff6ee64d360a5b6d7da17aa068b63a4a721f6323a855249d6737978e6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-10b4c56cf26d87089777abaaa798b96924ebd42b2f59f806bb7a677f06d92fce | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-48380e9de166d82197c8f72e42df19d9981f031ffdbcf1cd246ef6d6deff794d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-runner/1.4…
-6ac9055b2aeda94eb81993cddcf4fd57c5ab53bab3925ec4c4059426317ae5eb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-runner/1.4…
-cc42296727533ff7f5ed103f48142d07f396b1ea81f795defde54eeb1a923a37 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-client/1.4.1…
-753b98532fe9569a024e466c4537df66ee2ecb4128ba1aed6635a03793bbe750 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-client/1.4.1…
1a4b999a2d9051382430994126c4bebd143c853e26d6bca4fd4c31924072ef5e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
eabab80e05fe2a31e2f2395cedf589cd72fb8df0a82e08e93c2e36fe953b8d59 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-b0ba729c8bd039e1973bab95a88577fbc407baefaef016acecf73c06a504a05e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-4ce8827541cdb85bfce5bd493b307da13da3c6c5e470f9f2a07f3e578d54b7c5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
b0e6d0ab0c1f1dd2e2e5f540eeb6e5791820bdbe4f34597b4af183145dd2a493 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
eedb363ba1f4b999e62b34d264f1b37492f986169d808ec94ca72a67938291db | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-83e2d1333ac57832e10eac230f36800fa7fda46a05b7ff76f694714674260cb9 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-226514a326c8224f2ce948b106d8a133e17ab8e114db25a5f3e413c5b70f9ae5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
110fc7e4602f7aa47286a74756b673903ff3db5044312a16172eac38f7ba1224 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
fce78c0c595493d89f90fa4ddba466abf4497e61aac6f2f0449ca1541c167413 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-0f5dff8b67b0ea18f41e4c0547de55b83fc12d777cd0806b80c7c415fc65a78f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-f16817733e7ea24ec8559e5ac5d3c2d2d4fcd9a4073be3052147d7c5689b1778 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-46e4691796cd1410872325bed8919a0cd12e619fd16243f8f439ea2114acec8f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.4.1…
-eef93e0497a587b82d335a299f8a0616be8c19ba82a36f795647409182eb25b5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.4.1…
-fe6046a1c68d56c21aa57ee9847ad92ce5a7975e6633082c19deaa4532acc959 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-emb…
-b6f72d264e25f02dcaee32c8ab2e47d0c6a1cd7934c640406c5e72ed0994b6d4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-emb…
bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
21d04a0720be4a46804e1b73b733c72269c16900896ae463a9e87a1d04ed50c6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
61653ccfae8caa4203e267b479821bd90faab3fef744a7ab0fdd9f61150f970c | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
-3ab3413ec945f801448360ad97bc6e14fec6d606889ede3c707cc277b4467f45 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.4.10/kotl…
-eef345ac9f76f39a8f0364bfbb335619eb506c4e54e1997be1c58dc624b425d9 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.4.10/kotl…
-7e1ae4f15a7aef746c5b89433f1c5e76b301a635854ef3c6b134b0ca31a36624 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.4.21/kotl…
-58b1dc4a27c380f2a8008fd24d52e5597ec2668d8519d2685abcfae5ad234a70 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.4.21/kotl…
8e525c7a19a94aea294403d531fd61eed3f08b2992e313a594cb531b75ffc35d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
d372f2dc8051f3d1d4fae3bd50e5fa109d3ec870c4a4830112f9afc8560aacfd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
65a3e614b27b2372f350cc015848d44cb14ca3225d8d41e1c54e60ce95e2131f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
-142c51b9bed14244abdd6ea4551e645be57c3a03a70b9933822e870c05fa8fac | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.4.…
-41357fe0c2608446c7a8f1ceb0259042aa0b94d7d92404d5904024dfb88c075a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.4.…
420198546b466bfa9c38d1d7fb2ffcdfb8f518026e8f4a7ca3851fbdd525a538 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
ad6cfeaefa234918fde058ab1f376168abe54cd1e7d12824fb15cc8a07aa0f03 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-bda57f354344be674e0a241b4c87248857acb411b9dc8ab65068141016466085 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-428551f2529aae79a6dfc3babae871f628d30f5daee8254a339af01dd71ac1cd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
e91befa8242e5894158c0275d26d883599fe6e6c57b6952129aebec17a2ef0aa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
de70f4db2a9d7d7aa42f88f217d59b61ed4357d4de138fadd3e459320abe52ba | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-9741d42f28e4f1d621e421ac2b0a4fb2e5f05b1fd4bfd326545b42de57fda4c1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-3e231d28644bff51f7a2e8cb1b6ef01e943cf9efb29720faa14166f7b448de7a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
d9a1cb78976db75b6173b51ad04efaebc2b3772636ad0b45cac4cd2d53222dc9 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
0e1311cc6bcd06f373cf8ef7c4d7380087f36de70d9c72acc432e02dabc30a9b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-7e369d1ba702082d9daa54674004aef7cb2adf5d2872e758a87674f4c3144836 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-4728fe40c3b32661ca66cde848e7bf78be95fd18aa07e8e36421257152d157f7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
5a9cced336697fbf2fb4b6c8a321787747f5e375227b7e355ebf3259365c024e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
6a1ba16592546ab118186a5634c9b24589ae2ed64f0cdd41a913ffb3c2b13db6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
-6cc266acac8dc49f5956f3f553c8de5fce0d1757c65a86b83c4ef0625a82ab69 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.4.1…
-04b8a39c6860998bd6446bf69c425e42af8f155a639915353c257233fecc2ff8 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.4.1…
-93f5cb50148dee7da746ed487e6278ee8d94da9a99b670f9f5248456c2f66341 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-98e59a445a3248f58811ce6782485de53fa77fc6f5adb3eb766a78b1231abd0a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.0…
-4681f2d436a68c7523595d84ed5758e1382f9da0f67c91e6a848690d711274fe | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.1…
-63480e72a7d4de742b49a6ff90e45f544ca37f3fe11af8b4839f9cd747515d00 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.1…
-812cf197d9c4c67e1f47f95e2d72a9b600f0d1124560617bfe9850773eccbcff | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.2…
-cd840ab880f838af0eb76e25930392c6bf0aa2a2adb5e2d4b0bb9f717a295ebd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.2…
40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-f9566380c08722c780ce33ceee23e98ddf765ca98fabd3e2fabae7975c8d232b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/…
-78f2fe1d48e99c64958930ccdc43fce5939460ecdfc65f302823a021d63c520d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/…
-50de5f7dad6235064ac6c0ff577f095a91b3306c2547d8bc372291587495024a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.21/…
-3b54ad496e7a7f7ad8ad6e846e5c061911242ef474e030ff602beef7565943d6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.21/…
133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-39b7a9442d7a3865e0f4a732c56c1d5da0e11ffb3bb82a461d32deb0c0ca7673 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/…
-c2f4d70082dbbfcea68fdfa74289cef32df9e4b5ddf359f006036dff1c5b06d6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/…
-8ec3db1516948b2d3524e3afbe75cb5ac59e02d98cb6ef586ef57ba63ca8d11f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.21/…
-5bd2b4922398bd94d1d94e2dca0401089092b453e724a9e746daacacead735b7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.21/…
-d71a01a080b544befbaef3ad549817f46e9858c4255d32a5393f30435cdbf3dc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.40/kotli…
-704fd78960ae046428f69bcd5b951c122e4c180c9400238a866e12cb18494a61 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotli…
-ff03e9989faa2d40fa4a9098aaad71e247f27ea4d24b0754da642eb0924bd8c5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotli…
3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-3db67dafc422b9015e33cfdb3a4df9e8a6912de63c4b733197c8c189cdbc6d4a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.0/kotlin…
-01ecb09782c042b931c1839acf21a188340b295d05400afd6e3415d4475b8daa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotli…
-a4b9cfbb4bbda523af1e24d52c775fb9c0f7cb568e48b065d45aeb56e63c2762 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotli…
-f78c5d8c09db985912ab83a1de3c3b53ddf208d7b151f06a72358ea3e137d01b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotli…
-076c5a29b7a79ba2050b52e12307783d6b18d7701ce5245a3f48d005c51ae2be | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotli…
9ef3d0277fe54384104a01089c8c718a9c2a7ab2b5292ff803ecfc9d38e7d6cb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
8131897af3fb30af2464efe56161a349087bca1544cbf57495158714875163e4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
-254b3aee937206a583fe37e5b0a56b570b18c1ccefd7b47a4f436786d49cb452 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.4.10/kotl…
-910c98c585e3a308e93a1c0a021d38dc5e1e3bce1c4cbf04000e4711371ac81a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.4.10/kotl…
-f2ce17a896296ff0ab726934716b2bd06695198e6ed78274afdb1f9e6f283833 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-klib/1.4.10/ko…
-db9a950ba9a190d04611e69b1732221ba7035c2796b7d8b6afa69840711cd0ee | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-klib/1.4.10/ko…
-504b6599eb3a3b4d8b4db267d1628e79f3e58f17fc4f6d44c24cda530b0edf39 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
-58b3ce8be4521230361fe6679b5930e75730164be1c7b900ddca4218072fee85 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
-5cfd02a5e7dd9be15835522035d32eca33be0e63085d27f7c918fa495e34f81f | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
-6538f458473a42b6e2a92676f00d70d4fa0f6ae824d13c1e31c8051c196d2335 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
-64c6d2b53e52eb65e26c6b828d848d8ceab30473c3511bbd1c116cf9799bc127 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
-4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
-3286bd65e41eae735600c0e9a441cb4a0988d0d76647923b9c978c90b0cb7311 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
-9bea3679d3fdb5ae8bdf200fc586d1e1cb02266ac659986125ad1a14d709a94d | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-m…
-20a08a807b5debd1ced0dfcd2f74e802c002b59666d4c2d7323f4ad4c9030d8a | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-m…
-9c615416dadd93f0e14895165af8eeee01a1aaaafe02c3eb1f2d2a770b595069 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-m…
-c972379b6eeaf36a39e51cdee6fb145b411263baa0c66167fd0073768ceaadf3 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-m…
7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-ad426ec76f52b1dcdf200f55495aea9a2d2796811884e8c4b514645061cf59f3 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-9e82078f4dafe1cc2e28f308a317912a45c6a88fc83c51db6ba8cb0ea0829ef1 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-51be6791ac5aed9718a58b297c8c9081c9b704dfd72a849c4754a40da55ee236 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
99319ebdd562d9519dfd15f78fe79bc09c3a28875083eea4577d9584359a2f61 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-f02d46222e4591a9e16b6bacce5dc6606c33b38912d916daa41d428ef6703020 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-debug/…
-5ae9e4dd4e81c0bfc92b0d760651815792793be9ec4f8a2d308b4aea6adbb23a | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-debug/…
-29038be2ba5cf1acac17fc0d9746e553cf90315b8042366169ff6d800dadf239 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-debug/…
-52614d618c5cb6a8d5d437e95102d1c45565237e09083cd64031ab7b23303a32 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-debug/…
-e61e3d3db85385c8c2439a5b87b724205cb8605b24edc89d34d8f84ed401eecd | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-test/1…
-6d2be12eb2f02729639cbf07a590e1fd354ec5042e9233d29de794055c0845bf | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-test/1…
-2e3091a94b8b822c9b68c4dc92ad6a6b0e39e2245b0fc75862de20f5a7a71e9a | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-test/1…
-497a7639820ba0758d4e0c1d6f82fdc8a9b6f6c2a28d91fe03c6b0776db4be40 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-test/1…
1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
5c415a9d8585200de4be1947e15291cc79f599b06249375f5c9ea22d4b2d090f | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
-518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8 | https://jcenter.bintray.com/org/json/json/20180813/json-20180813.jar
-c7e660c50bf4ecda0fc81ab62b489db9171e207fa784ddcb48c6c85bb40b49f5 | https://jcenter.bintray.com/org/json/json/20180813/json-20180813.pom
-95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77 | https://jcenter.bintray.com/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar
-0a84c20cf71f6a3d21fe226b0d588332fc7ae3e90cb583c60a483317eb9f3644 | https://jcenter.bintray.com/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.pom
-f64f2cdd95e608f0c5079dd0df3f184d77eb6f2a6c161fbd2602c46e7aba40c8 | https://jcenter.bintray.com/org/mockito/mockito-core/2.24.5/mockito-core-2.…
-01ed8f91d51624f38142fed8f1004600cdc06e9b47a5058ee207f2c4ca30cd0f | https://jcenter.bintray.com/org/mockito/mockito-core/2.24.5/mockito-core-2.…
-3825feca2a3c176400b063dec7c6b0643e2b5256bbbfd4e0a7c11e0dd0983baa | https://jcenter.bintray.com/org/objenesis/objenesis-parent/2.6/objenesis-pa…
-1493584824e110e22d6047584978ca2fc9907987102369bdb1e3773d54963ada | https://jcenter.bintray.com/org/objenesis/objenesis-parent/3.1/objenesis-pa…
-4c1307909dc62df1bd91f075503f8bdef5ae445e13353f1752af9448bea1d3f1 | https://jcenter.bintray.com/org/objenesis/objenesis/2.6/objenesis-2.6.pom
-cdb3d038c188de6f46ffd5cd930be2d5e5dba59c53b26437995d534e3db2fb80 | https://jcenter.bintray.com/org/objenesis/objenesis/3.1/objenesis-3.1.jar
-d46072a46dff7707e06545777486b18d73e052231e3139cd3d9c3f347bc4e6e4 | https://jcenter.bintray.com/org/objenesis/objenesis/3.1/objenesis-3.1.pom
-e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474 | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/7.0/asm-analysis-7.0.j…
-c6b54477e9d5bae1e7addff2e24cbf92aaff2ff08fd6bc0596c3933c3fadc2cb | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/7.0/asm-analysis-7.0.p…
-be922aae60ff1ff1768e8e6544a38a7f92bd0a6d6b0b9791f94955d1bd453de2 | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/7.2/asm-analysis-7.2.j…
-71faa63489b3de4d6251581d2b26e87e0c167c5a08198ca62853fd83644d841f | https://jcenter.bintray.com/org/ow2/asm/asm-analysis/7.2/asm-analysis-7.2.p…
-fed348ef05958e3e846a3ac074a12af5f7936ef3d21ce44a62c4fa08a771927d | https://jcenter.bintray.com/org/ow2/asm/asm-commons/7.0/asm-commons-7.0.jar
-f4c697886cdb4a5b2472054a0b5e34371e9b48e620be40c3ed48e1f4b6d51eb4 | https://jcenter.bintray.com/org/ow2/asm/asm-commons/7.0/asm-commons-7.0.pom
-0e86b8b179c5fb223d1a880a0ff4960b6978223984b94e62e71135f2d8ea3558 | https://jcenter.bintray.com/org/ow2/asm/asm-commons/7.2/asm-commons-7.2.jar
-190ed352a8c20594b196b20194d06773b91c86b8d36868f937e5dbd0e9c0d78d | https://jcenter.bintray.com/org/ow2/asm/asm-commons/7.2/asm-commons-7.2.pom
-cfd7a0874f9de36a999c127feeadfbfe6e04d4a71ee954d7af3d853f0be48a6c | https://jcenter.bintray.com/org/ow2/asm/asm-tree/7.0/asm-tree-7.0.jar
-d39e7dd12f4ff535a0839d1949c39c7644355a4470220c94b76a5c168c57a068 | https://jcenter.bintray.com/org/ow2/asm/asm-tree/7.0/asm-tree-7.0.pom
-c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656 | https://jcenter.bintray.com/org/ow2/asm/asm-tree/7.2/asm-tree-7.2.jar
-56765f0a8bd0978214f7ec87a9dafb5825b8191cff554a5adc14c65d1f5b0442 | https://jcenter.bintray.com/org/ow2/asm/asm-tree/7.2/asm-tree-7.2.pom
-75fbbca440ef463f41c2b0ab1a80abe67e910ac486da60a7863cbcb5bae7e145 | https://jcenter.bintray.com/org/ow2/asm/asm-util/7.0/asm-util-7.0.jar
-e07bce4bb55d5a06f4c10d912fc9dee8a9b9c04ec549bbb8db4f20db34706f75 | https://jcenter.bintray.com/org/ow2/asm/asm-util/7.0/asm-util-7.0.pom
-b88ef66468b3c978ad0c97fd6e90979e56155b4ac69089ba7a44e9aa7ffe9acf | https://jcenter.bintray.com/org/ow2/asm/asm/7.0/asm-7.0.jar
-83f65b1083d5ce4f8ba7f9545cfe9ff17824589c9a7cc82c3a4695801e4f5f68 | https://jcenter.bintray.com/org/ow2/asm/asm/7.0/asm-7.0.pom
-7e6cc9e92eb94d04e39356c6d8144ca058cda961c344a7f62166a405f3206672 | https://jcenter.bintray.com/org/ow2/asm/asm/7.2/asm-7.2.jar
-e9e529afbd4bc699f6a3380855d27d13017c360fdb68547e06d1c3842d84e262 | https://jcenter.bintray.com/org/ow2/asm/asm/7.2/asm-7.2.pom
-0f8a1b116e760b8fe6389c51b84e4b07a70fc11082d4f936e453b583dd50b43b | https://jcenter.bintray.com/org/ow2/ow2/1.5/ow2-1.5.pom
-6e58dad0b8565b95c6fb14b4bfbf570523d1c5290244cfb33822789fa53b1d25 | https://jcenter.bintray.com/org/python/jython-installer/2.7.1/jython-instal…
-2a42db37f9a565f1baa833b7cb7e9f901bd9fd750d10b9bd7ca76b2385b22387 | https://jcenter.bintray.com/org/python/jython-installer/2.7.1/jython-instal…
-ce679af70c22620b5752aa6c1555d0653198d6370e9a93fe71b8eaaebc5ffaf6 | https://jcenter.bintray.com/org/robolectric/annotations/4.3.1/annotations-4…
-c0a9d951f7112452291ce0075dd6d4daab6b623d3157c7d02fb503970637b869 | https://jcenter.bintray.com/org/robolectric/annotations/4.3.1/annotations-4…
-60c85ea7fd652bc4e57567cbd3c41c5d32f2c678e212b713cefa6c63570451ce | https://jcenter.bintray.com/org/robolectric/junit/4.3.1/junit-4.3.1.jar
-f09205055e2ebd1cfe5fd4834e8136fd4f5d82288a796385a175c338752e453c | https://jcenter.bintray.com/org/robolectric/junit/4.3.1/junit-4.3.1.pom
-229256a260a1d8e8d33613a3de7ccd639661a7061251c1974975ed427428b468 | https://jcenter.bintray.com/org/robolectric/pluginapi/4.3.1/pluginapi-4.3.1…
-6c2c3fcdea6d8f309ede3651a37c5a3ea6708693120a580eb5acadbe2a051a4f | https://jcenter.bintray.com/org/robolectric/pluginapi/4.3.1/pluginapi-4.3.1…
-0d6c577fdefe254659ffba5c0564d7e00c69f03e99a4ebb6c150419834cdb703 | https://jcenter.bintray.com/org/robolectric/plugins-maven-dependency-resolv…
-faabd7ab565af30c74ae082222d49ffefbb377861f3cf544c940cc19e2f7018e | https://jcenter.bintray.com/org/robolectric/plugins-maven-dependency-resolv…
-93033237006b51541f8e93d65940f9040367775937d0ce9ac3f4ef72771c51b8 | https://jcenter.bintray.com/org/robolectric/resources/4.3.1/resources-4.3.1…
-1c60572df06c367dded10cb20ce8c4ec84b8e044d1cfb54696a031150bb111eb | https://jcenter.bintray.com/org/robolectric/resources/4.3.1/resources-4.3.1…
-3ef4267112ba581ee2a7ad37859bf61571404f07df85b8ad1da054f90eb57a5a | https://jcenter.bintray.com/org/robolectric/robolectric/4.3.1/robolectric-4…
-9a379377599af5e4866749c97b10a18a26bbb58bb0960e266da21865384874d6 | https://jcenter.bintray.com/org/robolectric/robolectric/4.3.1/robolectric-4…
-405f73400d717e083b25af92fa7866a76765dd4e97cf7fd046023d4f05375a9f | https://jcenter.bintray.com/org/robolectric/sandbox/4.3.1/sandbox-4.3.1.jar
-3b3f4b64c5c1b2b25e25777f39b591571acbf88c0b2dc3a1845469528939b346 | https://jcenter.bintray.com/org/robolectric/sandbox/4.3.1/sandbox-4.3.1.pom
-a63d13e7f3816f28ac33eea71a15c7f3f0053ecd01b08cc1e1e119af35ca1197 | https://jcenter.bintray.com/org/robolectric/shadowapi/4.3.1/shadowapi-4.3.1…
-16ab0051a6be13f4aa27dbc636dfc4c6aaa214c2163641d96cb5b381494c2e90 | https://jcenter.bintray.com/org/robolectric/shadowapi/4.3.1/shadowapi-4.3.1…
-9c69db134cdd79be751856a148020fd9b32b086bb491846eedc0a1106fcadd5e | https://jcenter.bintray.com/org/robolectric/shadows-framework/4.3.1/shadows…
-d445923ab7dfbb93d086b070b64f07495b0a1804b9ce1f51815d6034c31f781a | https://jcenter.bintray.com/org/robolectric/shadows-framework/4.3.1/shadows…
-9d7bf2557947d44d6f3ed76ec5231e8b72e33eb61c65ac9e149ad307b0eb936c | https://jcenter.bintray.com/org/robolectric/utils-reflector/4.3.1/utils-ref…
-a04c2bdefec0b5b492de86365e49537df6d39b04f3823619c94ba2b8937d8670 | https://jcenter.bintray.com/org/robolectric/utils-reflector/4.3.1/utils-ref…
-6f9e406cd667019a5450e473c4e2d372bff9c9ab6ef55aafcbc9843109cb1519 | https://jcenter.bintray.com/org/robolectric/utils/4.3.1/utils-4.3.1.jar
-9ebcfff0b872eaeeae47b2a9f9653c4e40041193a7c16e6a774f73d79aca8b57 | https://jcenter.bintray.com/org/robolectric/utils/4.3.1/utils-4.3.1.pom
-fbd7b254e02d8aef60c418a5f0e14a783b38a16162caffb2d2a16ccd5d2c09b4 | https://jcenter.bintray.com/org/slf4j/slf4j-android/1.7.25/slf4j-android-1.…
-bd9b9cb1a3987b1427f7a18babe7f92078e32bbe2e1dca6dced00cc0e3a077a9 | https://jcenter.bintray.com/org/slf4j/slf4j-android/1.7.25/slf4j-android-1.…
-18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79 | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar
-7cd9d7a0b5d93dfd461a148891b43509cf403a9c7f9fb49060d3554df1c81e1e | https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom
-18f5c52120db036e88d6136f8839c832d074bdda95c756c6f429249d2db54ac6 | https://jcenter.bintray.com/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.…
-c513995cf019d9213d4fda666589937b2bf1bea5c4cdd337e6170e80b18406ee | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/4/oss-parent-4.pom
-b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
-d3f7f09989d5b0ce5c4791818ef937ee7663f1e359c2ef2d312f938aad0763da | https://jcenter.bintray.com/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar
-174d423722256823edbe2af8d7e3385c4645cf72382a22da0485b3b674394f37 | https://jcenter.bintray.com/org/yaml/snakeyaml/1.24/snakeyaml-1.24.pom
15ac15eb7c371db05e721be8d466567c2b7274b767d91478e781b6d89ee5d3d0 | https://jcenter.bintray.com/tools/fastlane/screengrab/2.0.0/screengrab-2.0.…
7dc7568a003d87fa9b1bff88a579e5436b5d313821e6c904ed532bc2ae8a8b43 | https://jcenter.bintray.com/tools/fastlane/screengrab/2.0.0/screengrab-2.0.…
-34e08ee62116071cbb69c0ed70d15a7a5b208d62798c59f2120bb8929324cb63 | https://jcenter.bintray.com/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
-8f10ffd8df0d3e9819c8cc8402709c6b248bc53a954ef6e45470d9ae3a5735fb | https://jcenter.bintray.com/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom
-0341395a481bb887803957145a6a37879853dd625e9244c2ea2509d9bb7531b9 | https://jcenter.bintray.com/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar
-4e54622f5dc0f8b6c51e28650268f001e3b55d076c8e3a9d9731c050820c0a3d | https://jcenter.bintray.com/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.pom
-c851df79b81bff60b33f42b8f3ad3497f94963eecffdd360d588e06b2f5e1902 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/67.2…
-24dea3626ba33a81790713097ecdbb0e40acec1f778f3247d687c2def6e7562a | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/67.2…
-3de5412e997e57b938c5d820f2b612aa54f9d4e451ded2cd9daa46830b1140a7 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/67.2.0/f…
-1cba0a74d265432f36ee2643b843f2a1aa1f160f7f95b1d0a674b5f84b61bdda | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/67.2.0/f…
-c7506f720eb8f9170ccb0f8ab3bc60a19b4d14585a910e6cb8c70b28b5c45b51 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/67.2.0/…
-a11bbacf60c9adb449e9aff67af0f0e7725079f496735c762bc627bac1ba6bd5 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/67.2.0/…
-7ea4e2f86eb19f108a75ad7a6eab3f04aaabc17fe97721e7af6eaf6016e9ac5e | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/67.2.0/logi…
-abc9a481d9a8d0cff2aa2bd64ba3659e7e2a79a4fbdbeda0cdf5f2c3f4f3b20f | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/67.2.0/logi…
-fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/67.…
-a9986d9325879d5daa274b0cf140917207134975ca30363c49c7f53008bb0e8d | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/67.…
-f1280ce4007d3d6f114c35d747c50ef4b8e972ac20812dc1ad5646c58c874446 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/67.2.0/nimb…
-c1bb50d0b6c922aafcb8beb4a0115e4f148f18f15237694fcbc9215806b784ee | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/67.2.0/nimb…
-84b1f7298bac034edafc3daef1a8b1fc89543a8ebe5b762c5c3c18abe8a01f7d | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/67.2.0/plac…
-20b128955bc1dc0a648cb179337d181c5b8f2c01d17a4eaf778a542007a5ddd3 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/67.2.0/plac…
-e0876d0f2a8672b608d3d702bc42c8b833a1a146e359c18e0fed2b61d00d3975 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/67.2.0/push-6…
-6b6fda096740b2b0293adef4254aec90b43c8061bfa57c95afa6c44998fb4d2e | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/67.2.0/push-6…
-8a91c6b51965a76397500c8e3660ec85a4dafe591322c966ce382759baed23d8 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/67.2.0/rus…
-2df4bf435be1494030b7e095d3006a88f42ba278d834a46720d2746bac20fb05 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/67.2.0/rus…
-57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/67.2.0/sync…
-2884728eefb23a3e9c91c2d4fd4c91fd95d6b155be7b317ecf70203e68a14428 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/67.2.0/sync…
-fd98ace3131929977df6caa61b419956cd704fe7fb46dc20e1d348e710755690 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/67.2.0…
-0b41c8ffaa03c0f84bc4ffebcd765c6373162191fa14e480fd1de19e1d9ed2b2 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/67.2.0…
-9ff49670a110fd56586229d42673902049a92650257fad81146a25daa5a4e58f | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/67.2.0/tabs-6…
-8729ddf632ec417808e0e0b49868cb46bc968fb44c97f5e0b7397ccd4728c8e3 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/67.2.0/tabs-6…
-cf0936b6f522163606128c1803921f21c42a2ac7cbeb2a74eeeae6a4aab8e17d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-dd509aa0260caaeeab7c8ea006c2cd433b8306086c6cb18752e96320ae7f72af | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-a33eab48fd4179e2c74e4efdc40ba7e0123eaa46f64edd110bcf497501ac6281 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/72.…
-f48a34c1749ac472b23035d9ad5709f189a605ef1a6ff4bf938b10f155213f50 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/72.…
-76c335ef74415219fe3a28b97b1f439c6171fd8d65988cf407b57fe6cae0a5cd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-27ec2ad2f7bd574ab4c898fa8a7975dcdd9443fe7e1b920223478c14fb9a067a | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-c911452c30459d80ee4e38423682793e6c5ffc640a0910438ace0bc282a982f8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-a8bd50ee1c8ebda22d4d7c1eee0a492a5b7b1877ac544d682d1f7231e78f776f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-bd2eea48d70a5f67a00aa00860a6bc93a32257a01f53a1186d733a229cc9a1c3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-3ae199e35a440ba86ded36940eda562154d0ca4e12d9dd345f1e862dd5d02330 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-d9abc9e2ea7c22e478a7490df9b76f9b0cad3629d424a342acc8db524f7f8f89 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/72.0.…
-871609a0f02975abb038a79f7dc2bbc9d6bf1c0ff25c63d980acfedc4309782f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/72.0.…
-15e31cf9110bc56e2117dc32a4d6aa9c8d4697c41f456e1c1eb0ca9052b83a4f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/72.0.1…
-60bc2fb4039829890e821811c6c8da4addddad9316200e63e2b0a1b1a383f81e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/72.0.1…
-d9aba7a5413fbd1631d4bc9298d55e37b436b6e2f7caf849ec35ab4825062b0f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/72.0.…
-4b8b2f9e72a19992fa1024955a60865a4943ec77e35272681e0f74e96938eb71 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/72.0.…
-f0eb789cb5daef255d9ee4ff7ea3afeeb3d3f6046eb7b03871da41e52b8ba1c1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/72.0…
-6a12e87a15f8e3bd60a54204a33a09fafb86b01136db71206291a8e6b6d5fdf6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/72.0…
-07cca82ca086d49a7d26ac44d08eaff857357b357e9600b312c598e2259c8627 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-6223aba556cbe326b96d4237c4635bd6c145713514f6f915109b2781a83d48e3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-9c293d868f3ad6b5b1bdeea71745be48c4da9ebe33ba70dc36b413c741446787 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/72.…
-b1692912d33e4e81470333882168284e968265fc29e914a372d4b9bc27db72f1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/72.…
-d55f14316f736b6860512d81f32a2148d9394b1d56f5be8f8098d43dc385bf07 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/72.0.…
-5081025a6a6afb13412b2770e8771cab62b0cb468a58044f5d7de607e4f571c0 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/72.0.…
-f3620e6dafd8244db545af087d50ed93533cdbdb956e2436c841f78b631e1d0f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-cb333c3a392cebc8daaab5e5091f95e101a931dbc02121dafb775eceb97cb154 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-d75a22b6e81f1f90471251a695ef64d4a75532040065d8923ddb0928ae61fbf2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/72…
-e2ae438a1ff43b3a68819f87114688aabde82b17241fc3a92e3e5007e176fcb8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/72…
-fe8e7843478a9699ebe8d21ca9486d826aa4c85dc3178ff1114be22f9b0ff50c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-18fb307c68e522f5538febf3222fefdfdbc45a3e2963f1aaf410eb180a91ca58 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-d7f0401ef112aa667f4d7048b3bdda7000c2a40796fbfd1b83200fd08fbabf26 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/72.…
-556565214ce5541efe8ca55211bf7ef818fc68225e922aec20f12ebd932a7d65 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/72.…
-a333cc604fe5934656fed5f842fb359f0fdde47c33351c03ef0de3dc742754aa | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-233fea9f2308ba87d7d8188f483681df63fceda665a22c3cd60008050915021a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-4496376e4de5abd45005dccad7050975ed96b6f1c2db692a88448f66a18c859f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/72.0.1…
-b1bf76e10f7f35f96030edea83aeddae3b33f7db414e0a26b53d22aae8c70374 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/72.0.1…
-48ccc3cf289c825eca902277a633597ea19568d991863d682a528bafc2b5af42 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/72.0…
-9d31d2c60e74984cb249679eb471c74d60fd5ba26e9db607e811440c2f580772 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/72.0…
-699b513ac63c2f8d5967cfa738e0a435ada73307903b86df07c0ebc61cd6d80e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/72.0.…
-134b10be127f1232336bc41e79995ad1c6f65973539b074dc76a530ed8f287b3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/72.0.…
-df27163b42a29ec9e7678cf31c3d3ec76881cab74cff7b50bdce412c3fd63c1a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/72.0.1…
-f1b9b3539ba6c1f153e0ebaab86ef6a70d863968098810ec6a3ba750c9a41aa0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/72.0.1…
-75be14a169c7ef2bac1830cc7efca7ec45f34edf54c87d7738804030926bd1fd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/72.0.1…
-306d39a8dae454b8d1066aad873f4ae34e107c9a2dfb949b9364290225ca5376 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/72.0.1…
-63c1a7ccf904423703ef3007cd79c0abddbe8d9f43c675685149392de48a4eeb | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/72.…
-101744fc8967f31535c2cb3d720802e4c74212f2744a088755acec73b5335f61 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/72.…
-900d502cfbdb96b3c9e35472bd2fbcc5c78396eae66ddca040d3c789bbfac61c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/72.0.1…
-b38675f99d0b52808ee0b7eaa56a3c37aa71080a8a4c804bc790f75d41bf9ea4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/72.0.1…
-00de4cfb49bcd14819487375f615055b8993bd73fbbcf6e76c0317b5e066e1a9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/72…
-e1194bb7dc746cd2cf13bfe9bbc6f2430fce3358cd7db25be664e034b5f81c23 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/72…
-874552fc4baee332beb37bd4b0757f6a47a7d68e8d49281d05b72dba9f33076e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/72.…
-d46db6e5a6e6d96c1d735898710b0f67b979a53bb2eafa729311f842b1c627a3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/72.…
-cf22dafd69d182e403c420f8b2e0ff15650531958d4d9bec9eb1773a898adbf5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-d81c0db738fb6db6a72b752597c689550383b7a88d155a48b3f198636c13696e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-bcff4fb6918c9721d60bc129b787823a92d5c76c57f966369aafd7fa221d16f9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/72…
-55de24940257bc8e258964e56f6724c2d0aa901036b0f5f5bba9954426119309 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/72…
-dbb63d7a9152c3700c23896068b7574a93ee3be721f2617c755606781794af8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/72.0…
-32a6a6e5bd157506289c7583dc6c9c6de6d38fa192fe4b4302b3a6cd4f8e1775 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/72.0…
-114ff24ce89cafc32c57c225f8a4d6352485fcf404d23cd23ee0f841eff8c39e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-b543235e4d99f98f5b27586efd17af53b9aaa20bf5c062eb01cdb8960758101c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-f006195322ec35527b5db0a2d45678ddb1784a963cc2efe4767f3f7c02608a8b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-d3bdf41a1c8777fa6f0bfe18ad914016f8b1b6b1d958dd572f4b30dcc8f8a0c9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-64b0bfc791733e9dddb275a8741fe444388053bd01d35e34baebc9a04ba34f92 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-d7b6bdd40bdaf7f83642f81b4c305aec189a0b9b6bb413b394e1ccd3a5f86a0d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-a3296cb0bb7be57b107c3098a4e7803e8ef0f43ef6f2480d8375d8ed2106be6a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-f68a4fb8c2827f8ee08be1c5fbd320e6139e34d078d84bd53f1d58f311cae06f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-4d19e118bb41814b01ad0b319522c604ff69e10e8d6de3562e6bede42e647793 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-cf9891df96dc430038bcd98186132d46e8bbf16011422ffb769e5ee8570cdc50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-c0cdb4bc31c36570f666eb2f07bdab1c7a7f3adf65352f0185f4a77dfc86aca1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-de2206fad3964c76cecbf869a1659ce1873efd16aca39d97f110f4e36d183bf5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-d00b5dc50a6d1057e68bf3a3160a884c63405f8a71cc6d0c130c5f4445e4d2f0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/72.0…
-31c55f10652e83308e6a55e4d0849b54fa416a5980552f5028cf74fd34889539 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/72.0…
-48516fec9ac2cd8daf126fdae2cbf169e67cbf76e9b3f3d9ac676dbdb99fabf6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/72.0…
-4ee857a019a9832d382f310556d9cd7eed603e32e263dd95db239219bfddfa9b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/72.0…
-cc0ce564b8554db4e0fe10d997b5b0436ff93b7fab62bce2da221fee095b3dcc | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/72.0.…
-12f7802e63a79803167523f902a79323bae9debcb14e65722b6277b89ce94c57 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/72.0.…
-17f1081a1f9b310a7e33ac7b5d25e2cfa8a25bf7b405db3ecdda3b2fd7dc11c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-c09051c3e23d7269df3efd66c8037d0a4e49bf5570cd76d9608ad4b25081ab4b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-c710c731776a6d95d75496272737ffcf58f48f67e0b8d56aa6e674420623fc1e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/72.…
-e3280e751cf7106bf80690986ba4da92079fd660e291ee5fc48d93b8e0e88012 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/72.…
-cb0f953fdc4bc4c12db326b637611a35e45522435832fcb149034db20a494449 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/72.0.1…
-8ce51eef7e1efcedacaf4a845cc867a043c20ffb3279caeaeecdd3e1f3d182f9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/72.0.1…
-c1421382eab8d3c2d3567a90d24e4a236b193dbec416df6c51e0c82a00ecff26 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/72.0.15…
-53ef7adbf3cbfc2e86ff30c1f526a7103a58d7a59e7275c8407414ee1168f0e5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/72.0.15…
-818f729bcd559f27cefe76154538580120a7596f98db818381caa2a6e79c58b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/72.0.15/…
-e366015f4270a6a6cd631a15eca02c0b291f5232fbf2af19cca97c4a490e77ef | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/72.0.15/…
-e7b8cbad62642469e497e68131ecf8db98522345177822760b0e837544ed5377 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-fa20683d309fd4706803bc5ddc0316596361b8b7466dd0689f53a9ddccbe1961 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-3b72bf4c8c50784d39e997ab0622ebcb4c9e25e8f371d95a120a3cfa437e495a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-40d266dd4382a34a92138707a8e57dbce8a33a1a893e2a576ff23f376cbcc288 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-90bdb1bda5fce4b8946affd99d0193578183143afd2d6f184eaef51485f0308c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/72.0…
-3cf2fc81667f4c11a3b52e0adb521e8bd9de06c1afdb0fb9c6c470f61925abce | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/72.0…
-e916752eebd104569639e87cff8159df345ed8ebf4ecae391ef9b0dadf7c0300 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/72.…
-9f7253179e7d25b568f8bf2c19733ebfa2e1787a2f5ed9a6bcf3de5cff72100b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/72.…
-e00d47d0c3730a5958e36cdd263ddc91dc744958cb2346bc19b5452d6f0799c1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/72.0.…
-155e34b04f11f48e9682cf64bd01890fae73a0e2eb904cac9c05add087a668d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/72.0.…
-da22a7cd375d0d594d12a7b661490c96e9343669d61bbeeff3bf1087ee0c81fc | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-5c51c99dccfdccc3a733630ba4e8475fe80434fd7a27ca2eee0290ff55320e74 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-ff7b95cced4e44633cf22d007f9ff40cbda272b7963f62dfeb08682d822198ec | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-25ee8021d1febcbb5d4cd38c97a71e8ec4a8cfcacad42429e3b6373448bd7aa8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-6e5665aa57da755492f51f4f95dac261f4f1c88d9d068a34850375a9d00b1853 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-337a0cfeafcaa51b735d0e09fc8abcef7d9e39fd966ec0b4e1c4f2993ad42f11 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-bd01387eb4292c601a9923a256daa5989bd80a72029ee17580f5614b008159bf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/72.0.1…
-8dd195bffee252c40c2dd0e61c50a141025c2246b7ef78560b5e55dd1b63d5bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/72.0.1…
-e4fd8116ba7112468bc43ad895cee9c50d29a149a95e1fd0d8f87962076b6ef7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/72.…
-a101f701cea3245d4017dd03de818ce84cbe1a2b773308108794da9a3750502a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/72.…
-6f0b1315aa46725006f85f68bc664e505e603d99917b06e89012f7567993b8ac | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-01f74390c805788380418038add66edfb827877a869c1d05c7507adff9ea7558 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-11f1eabc582d8b2a824a45241816f9e82be13ea473363e7f1dff00b697bd6ef9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-69b2a6b26c985e51d21ae7d040fe51e441128c8f20c325a2f07ca7a4bf213dcd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-1dba077ef2c14496114bdc05c01f632a05a6d6f1bc5d851c18c8032737d90696 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-945a8483d2a7fabd6a5ddbe869759a5516cd12046dd92c74f2423a6667b9e18b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-18d70a2c554bae05972e9453a2872dd5421fa2798465d26df0fa6118cbcce8d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-a425f7bd91a2b598402c5bd75da8c19bcf79eb9160727d5174849a4fae56b7a4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-527a003ca2d044bf84329b9b007a7dc43d5f707fcbebc63716de6e65b5f1d860 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/72.0.15/l…
-742c6fabafd1f5469dd90f0d03488944f570e2db7d1997c427a1d0c40a857e85 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/72.0.15/l…
-8ddd5a225161264c7d736a42f116f543ed9f672c8574f568ae2fecfb4c08f93b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/72.…
-e8a08b8b6316fa5433618cb15e18894a225e6067f0a453fbd4128f7b3c004cfe | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/72.…
-eda0fcb43894fbdc9a24d4f5b979c902eaaae70aea62b1554f45aa9600b1a7b8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-6b1f7fd60496a2a44ee7c98943761df6a5852c4edcdfc1157b8a7171bb904239 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-63a56b896edab40120aa64fe37ad51a008d94de16479d168ceff29dffdd8d5ce | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-940d7b1b504fb1c2d2ba068e3b7cc35e5ebb4fd641aa3b33be48ca3bf3cb0fe1 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-4a6856c18b4c6d6b6de158bd2094f2ba4d84978ead7a98d5ba83c36057b6d4e7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/72.0.15/l…
-4aaba6b9c36ca63ffb2a74912761c2008b317c02f0a87946ec1e8a319d3bc1f5 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/72.0.15/l…
-8db1f518ab4716885dd27e366400e124d153ea38831f8709632c4d8c43c9789d | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-d7a9e8cb83c93eae6a5104f1a0a6ced81678588d8ebbccad02a0818dfabdbffa | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-750e3daa0a68c257472e7e3cb6c3f4f9f400555e32bdd31727d238d8fe9505b7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-d6c712acbdfe91fb6015770645e770e5a758e8b1f0385a37b57dbd0f073e1b86 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-16d0389b23a563a0f03230afb4438d69072e904557635bee1cb642beceae2607 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/72.0.…
-77f1d126f50fde3fe13c2524c504c45dd64e9e4b05933adf518a1d17e3347b40 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/72.0.…
-9ac0ad81f7b6b07c045ab89901ccfab3a1915b1845ea9e5fde9e4954da4b2599 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/72…
-71549dd4ea561c0f5f6b0563c3f5b24b9bebadbeff86aabe2bafd6653dcea4c0 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/72…
-6dfef14f659e10261b6ac082ba60b74f66864df9759055c8d35835fa12da6786 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/72.0…
-40b0f25dbecf91299d4ec3a99f97261337e82502df26329f7c8ebe5ff5782476 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/72.0…
-d338c9bb41e2007cbe2fe9970c9326db9f35f8ad6260696c1b79285c5d5b980b | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-fe9748819b5dd1e22a2b55f001c108df6f23e023055cbbbba37b536214df0d7c | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-dcadf5ca6864c4aa4075ec624e54b20d0cba325360a99393657c34f9891f54df | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/72.0.1…
-7192ec9629d872d5e4ab7975bc07e1c919855d0cfb63ba9c64bf7cd72d0ad5ca | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/72.0.1…
-4399954ec888c5316cc41e7011d19ae663f6ecebb5f38f31d0b94918d40314d5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/72.0…
-48687852e659327c6fe4d8952a6a2f6f60c9f3f2c2809c44023f3ec2b2353a44 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/72.0…
-90b371b291e74e539fdf4bd059ecf9be4f5d3ba3dd7b4048225fd8e3f09b125b | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/72.0.15…
-00dd78c94466abdb8ba2097b463ddd614b2cc513ea89fe01278c55bbbd6439f7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/72.0.15…
-0c071b715ecd3debb7a93289de8626e4815bd06167ddbdc58cf454c9c4e1c780 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/72.0…
-5f4d95e7b74ab49daaaac7e0b415b12133f705d06e9de8c712ad1dc6162c964d | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/72.0…
-efa9812ba4972df3841291d9a791b13f229b09dd5fd1f747d96c0d915cf00321 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-e0f85a90b5a2c842d089c7eae6021639b65238f6f02d587b6c7af694b0355ec9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-7d36f11412ef9b7360e0752309b7541e3c85f17b49e32a94a8398e7dab53331c | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/72…
-9f0efc530dd1ef6f416c56058ab2b96df0090ace3ebd0b0dda789fab4e9c8a43 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/72…
-72a085b1abb58af1bc6e47e690634c8d2648f021dfa9c8ce5ae752cbe0670066 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/72.…
-125ae0300219ed6b3396045ce4a5513ba29f198daa91d42772024dac5e0d24a3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/72.…
-20498d158e06bf13012376fe08d3162f722c67ef6005599d97448abc2bcc66a0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-3965c50f916512190208283ca9dd8f23acd44b236925a076234784b742a9d724 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-935d569da3ce6839b7457c87a539f71a105d2c4b8eae8caa97f166601402931f | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-76a6f8cab1c2d5d34f2443bf3db068ae79d9a37d01aaaf5266431a49efe77f3a | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-eb8e8abdd2a1108b338b1a4136d80f4eb02379985946d3d0ffe954c4dad094f7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/72.0.1…
-045810a606e73a6e9662e659b5af03a803dd6bff597bbeb2df8692f97fea68e0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/72.0.1…
-f7bf27270904abd8639b543151b6eaf268b821b8e6235c8decf8031e02ec8648 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/72.0.…
-37c364210a8e95732d536510bc77d269dc1160cea9fe117e67bfa73757e0bd2a | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/72.0.…
-4b6e3912804fa12d26972c20f161dff350ad238574dea7c9cf9503996d7b13e6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-3a17d54a76d16cf1ffbdbfb8186b6566d718a045fd241f55e8ef1e3a7df620bb | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-8d46a25b9d882b85f1ce46e1462964fcf268887f63c779ff495324718bb03ff0 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-95f46b52468f4948182a7649a00646873723e77e17a39efa411c0aa9c1ba2825 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-09f80a0b9aafdd9d46f53d139c8056880d17e2578d3f9cf797d632a5aba40fba | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/72.…
-55df98ffc5113aacf8435ac8a711980f9afa4f46ea9c81403e08aba6103dc550 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/72.…
-7ec7264a35b13382f84d701fab89daace99c6c8157c6fdc6d15da2361fb4f16b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/72.0.15/u…
-0ac5e85d85e53a9d0b5298461e76fe6a4b92c4274b32defd6fd442aa60ba8e3a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/72.0.15/u…
-71307c399eb59749c6c25d2a0eb93c61513bc79b6c2c5a3e4dfb70e5077185a2 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/72.0.15/ui…
-ed826ad7269613f77e59b09e570e9e7f204fffa826f45c86fca828ec1c7e33cb | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/72.0.15/ui…
-980d4b9faf12e5003c279303f3bac27a2230701f439c641beaa9149e79455d81 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/72.0.…
-9e489502526726facfb8836c5097b784059578f01c9c273ac81e67e1f4e69205 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/72.0.…
-b27707dbb4f038517c89ce84541251f527a954ead43f6f7c67dd516a1640dd76 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/72.0.15/…
-78918b656183146dbe7a3a4b0dda8b52e918972741600f3a30ce8a0c1bf742e4 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/72.0.15/…
-816dfaeadb34860eb09f7366163ede45422adfc9e152143a1cda568b815bdba9 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/86.0.…
-74dd3e50b176a493a58bc3328b929824126f415f1b5ceb88c1d82ee4d2548bfb | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/86.0.…
-230963637e297d1a3edb5b3748731d1243165d3d7dda8ff979d65f8c23a02de5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/86.0.20210…
-0bd06553f02d1cf52e81e83097c37f5bf6790884d9306f08eec8035c14397aa2 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/86.0.20210…
-97a9d151ad636acc68eeda046866f0ac24e6f7bf2a81a6b938a3386cc73be529 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-817736c79269dc217946522fdb8f6ed57547bdd8fbf187687b53ffbe5d813bc3 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-ccd3a75eb0e0f8ce5882d9d3a3154e3d3c40ce9c44f6c506ad4e28df84bab751 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-a09eccf8b4fbb071e1acf3ea3ce1d30017250ee9c35424a0f98659526ff19597 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-a1db8db94979392030d8a5eb1c5d7eccc8383adbf031575d746c68a92e9b0d20 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.1.2/glean-3…
-d6394ad35c63daca22246363ff826749deb62d514a1843eea27d8f39dfb778e6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.1.2/glean-3…
+8f618bf515269c02037d89a555295e39422c759f7b550a74ea3edbe355ebd1ee | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
+a1fe528647f8e20b45ea0e32bbec271c32e68b865622c42c9a37816a076be998 | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
+17dbf3d3f2cdcdbd666e6770161066214cc15f58298a9188ee8d58e27e4e5ee6 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
+8f9fd5e44dacf9f7b5e6e6ca09fde27f8c9877f09f68cd7539f5a3d980a060ff | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
+525d738af64c99669369b374154dd0d7e4ce32bc034f9736aaa05dc64f373743 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
+4f1e345f4e1f41ea2463befa35413ee12b465b3e60f0ab03758b53a17136a091 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
+373c9e30a547da6931309ba988242409292f752b0bd41b8a49972bb78546f0a0 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
+3cb0d177eb6e731633140b2e854c48edee90ef755026b128016e964e5dfbc3e3 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
+4cea81555a8c822e382f18495e2c852a6baa4d599ecde4a11ddd5dc27685e247 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
+86e8a90f5deeb76843286c3afd5e65216b4f05729b4b0d7e93aca51d74b98f48 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
+fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
+382af2131c727357578c4fdab03a03232a9bdfca3b1036d52fd71ef65a8cf701 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
+8d72e31784fac0c350e063453d537b1d2389f928c67235c897fc4cadfb3a2ca5 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
+d11541433d5795a8d801e03637fc68e6a8baf684a3b7f56ec19684428b5575bf | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
+54934a2cd59b9562345e019e9b44dd1e23d1e2ede61ae7184e29e4e510e4d422 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
+88e9eed6c49b167ed69864d1d0825123d7c48edfe542cafa203897a75b8fc272 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
+16bc9f4070b9e8bfe0be8a8ce70e922dda4e4fb74d1e20db9dc1739a8d5c5c0d | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
+a882723e6aca50bb0438a21f2ae1447d9cab19f433181459cf9b7086c2d54892 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
+04e220d599dd5d5071bc5ee127c5d9db3e6fe378a831c8d002fb1363883711d4 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
+eed6764e8fd13edbaa2ceccf976174b4dd618f9807e2ca265c7b193007b2de69 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
+57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
+b9a7f2da1c0af1f88fd8bb47d04d11b4cc14f19a0f7dee13bc960ac75e87fd74 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
+a50a7c02a36e5950ab0ca0c3a9486b87fd8de95582d0ddbcaa72af173230254b | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
+3b180681c076339b42e20967f95881fa11b5753ae7f597e3c3c8288c09aa9b5e | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
+6d23b30049cae26d35cbc1c892a785e6bdf9e0399cbbedf5584a48a8dc5cf5c9 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
+383823dd20adbea1eec86fd59097feb3f84f4dda77531a1d79ebe801b4d6d283 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
+447480a00dbbeefc1b9bf92cce055ef9e66012b472eb7aa816d0a5b0efadc7a3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+4de56a5a6146c05615258c1bb52ba3415de6fe5c2fb4b3a8c43ac12b5128f1cc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/73.…
+c4cc2de0066ee703559bf27ea7e5060859529505c4eb6b3e1e6f24563daab406 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/73.…
+75750cc312767ab2f4ac7cb6f5c81f6fe7e1ad1788cf06803569befdbf489fbb | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+507397e871ec3ea92af84518430279679a1b3fbcb261c6c9e28b4022a211e872 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+1caeffb46ffec001e1aabafcedeaff72aecaff1906af9e4ba6dc0d5ba5738e6e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+71290a324a7907c33a2376e37f97c3eb392d7e2a28553d73bbfd5f42dd6fc179 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+84fec1eb560eb286da5028ac46b69b0b1aaba68d2808299fd80a4c44ef1032d0 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+c7f99594339394a67c737bd3a18488a968657e4f67c9ea4bb2995e2a430494a5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+9fd1c1be67d95f47046fe2095541f6b30bd8f86b09bafa900e690e48f5f3d716 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/73.0.…
+4d330a04ad46b7fbb7e06a1631083efef9198898a5aebad8621f7723e38389fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/73.0.…
+5ba6a50bdb511962dace1eb91d5f83473f6c7f4ccba9c031b24723756a6f0266 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/73.0.3…
+f29b7a18c25b6c3f957e8fe721294c5d9672abaeaa8a19d54cc123963e028b6c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/73.0.3…
+522741d9030420a112c834989682457c6c518047691e85bdcde91e90c971876f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/73.0.…
+da806a41353dc50c0b288a83b9fd42ce4e55b1474d1b24f80b85cc39c8b5a237 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/73.0.…
+04de35c10b20442b1a2c35ea70b7b64f5325c77027cf02b6896e68bb0310d2ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/73.0…
+2bb3cb79ab43d0aa807433057eb1b4a7919e905121488dbf38298b01a73640af | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/73.0…
+95e6908b4c44267e447a57f26c56d6e1377241ea7980cca9634c571fefcf8bac | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+0edf084239584d5210eece1381696cdb77c6b8bad85c576b8b8efc9d7cce85c8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+3ff40893e11b1aef16f956485a5d7cd08a4b3301c928de3f71cf085cc23ec3ff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/73.…
+0a59db19f16f3d533d2608e9ce46535b4741be65f68c062863c0edc34a0a93f4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/73.…
+abfba8187225c2c1df99d023969009114811045e5d17b645041bb7b6b1d48ee7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/73.0.…
+70865120ea301cc0e002e5cec6a26a5f9660072815112c5b6a1bda0a5833efd7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/73.0.…
+4b44ceb549ba3696691c84d0db14e9a9134ebeb6778eed46af0e1223aba0c729 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+421519af50ac6f16b2d811879e255abb8c63e65a3ebd97bf13d8ad93cad17701 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+44dfa1456b52cc1eeb996df948bdd2bd72ab516abfa58f70201984ffb32f267e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/73…
+e36f8716438235dea28df4f1ecba68ea8175ba96dde022f1e1b8e7698db8fa3e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/73…
+2a9d738edc92bf5d718f1f1fc8b2f1908fc1e2aa0867a5cffe9d4521d7e0d33b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+c9bedc55eff9d9b295ce09109afc105da74b2542468a5fb08001238d7dbff6f1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+ea0324bd6d1fc27e66a75688b49697cc1335352229029acfd9bbf94ded437b0d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/73.…
+9936ea6372e996df60e06b234b13803c155595619db9852fcbbb55a5751e1b05 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/73.…
+7059ce18d0b9e2722ca0546113111f5e7378dfaaaa3428cd993bd1df0e6c7601 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+46b74cb532b9d1616dc3373f263f9746875c499d9db45121ed6a4727e0c93b7c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+b884604b63f08fab27fd98e09f2fd4a81ad127baaa4be9572de150b3f4b6410f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/73.0.3…
+ba0c8ae02b13d08013d0bcec92305753e2bf9dd7986f8bfec406691c7a0324fe | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/73.0.3…
+47c6812da4b0a97e11d15305a0a5cbc7e489a25318958e686a3793fd1aecf167 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/73.0…
+f5f03c5462e86ac56ab00fd4827d0fd37910e789594cf11453ff4a120547e2c9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/73.0…
+276fd39ef0f7cac1d5744351d5c8d37f751bd8a959983a6d6c01f041d9c9b627 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/73.0.…
+c8517be57884c050f9f628a670b8a440e98d779222b2d58d814063594ae77538 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/73.0.…
+62be7bfc6d30816aae4ec08bb85d2015af513c6397ba01e62af9044094b21cc5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/73.0.3…
+2901c838eb2294db7502567f8f037a4f52a10422fcbc3c2c1c0173277784c11e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/73.0.3…
+e1c06d4b6c497fa70a3876e22335c9fb6a4e0237587f0e0036d928196c4bd155 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/73.0.3…
+9932b955b07d8418288a532baba96bfb754cdaf22add3c396ba59367dbe9a94c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/73.0.3…
+6cfa83042c3077319fb6afa00b1474f9aece9bcd752557b4ad0bd2ab507f7a11 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/73.…
+0bb5c241487cb1a1b85417b8bc10a89171563ee37d432793d7cfe9a0a4795054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/73.…
+82e0c14306a0c8355a0547e407954d3a14adb85571b6214daf5446414fe3fd84 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/73.0.3…
+5a75a655da6558c176fe2948bfe68f2e50262df899c0d4f56acc59321327a761 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/73.0.3…
+450057953eea02275513eca3121479fd74c50c5dda9a5165c792b1c00dde473e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/73…
+df1d7b48c656cbb72e9bb8fc1a6de2041935a2c203be3efef89bb68a39d132ae | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/73…
+caf47211543f9203652e471638a308673a61949e5f934ae51d8d95d5d700ec55 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/73.…
+f91c2cc603721cb694e71b72989694e962be4fc2b1dbae513843b6c8ffb6d2f0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/73.…
+e508390b4f2fda504a12b334c78edfd5c675a5a0403f8cd8f97ebed24ddd766c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+d46fab5f7cc8adcfefb8fddf5ed1bd8845ecf5071c29df136098ec333d451dcc | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+6555df4e8b9f968ad24f07ae9a8b601630deab0ddc3b762b370aea576a5dff30 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/73…
+390150404bf5acc0b76e091e17a98d44dd76b8eff8d118ab7b498523f055b2a6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/73…
+2e12f28cc00c6c5f80558e2a6e80502f6076d81e0ac22cd407e45498fad3d44a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/73.0…
+3a47c5b6c861991951ab703072a62c36e48193a8c65d2e8a6e08ea99a9fb9487 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/73.0…
+58badab3d6608081f51c3a2253a09026f46068948ffb9eb88c0fca330ae84dc4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+1e400153cfef94b3ed43c68101200ad05ce7b89a123032081a564d5393b5a3e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+e6f8eeacb570233d3df05bf0699afce9d535fe95aae449b18733909ebc51d577 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+037dfcb20b2700941b08f60816de9256fb17fc4d67c9c0334af69abe27076b9d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+103796306040b311b786968452f7e3d913c7d1e1f768c04b03f50ffef8b0b9b5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+af29d316061a14a66d40129ce611c2f11a9ea485b78b797e618cd6769f9862d2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+2cd092e0ccba5ed7b9400bbf173580ead67a8aaa90819eedb91655cc0dd0a536 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+ec9e24d5ef470561967647cbe774e14b8535a44e46cad7078a393233e4101bd9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+bbb0648abd8356a3f36d53d34c4cb57faa8aeac74019b377ddc56ae965146a9a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+b7673b37e123bcf12c6c1ae66365e359af0a6052b300226eaf3e07a42b6d62a6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+62bf0e9526340aa5d741749740ebfeab1e195cb3be5cb61f35f9c587e30e1f92 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cf3d3087eb5ce0db1076826524024ba26239ec36ef40896f5aad43bee06d0679 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+21a483d6b1f857d22c27d24ff25a668896d77205c4b1ae73118daac78d8cce8c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/73.0…
+c75fce41519c9274d47139bf1bdddf21923894d566d06ef6bb8a3ca20e5db8ac | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/73.0…
+3831c828fde09958bfcfa87f208cd57c99f5e36ab6febeb186329ab47cb2f85f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/73.0…
+e734da778061d002fc090995a4e3aaf2732cdeedbc169a7e7a185e84b4020ab7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/73.0…
+c111277efc63edef0258ec7231bab0e6a3ce723bc55fa77efc073370b6973c81 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/73.0.…
+3a300d928e83c1661fa3d6b9233b2a78db5c745f674e40967b5b88c56ee5927e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/73.0.…
+ea47d7ba04df4ef30b5d3177a5b68b90dd942b11110331ec35284632d09a5251 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+37d4467604fa71c587be1a0098ff8b582378c0e484dc29e3178e8bb7a0846447 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+d42c4aef464ce4f2f54893e36ce18b5b5d0c00c0df7377af5c809e260d0b390f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/73.…
+1cf870bf0213d615a2706e1ae64066492942617542ac16c961795d6acf23fc7f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/73.…
+b427bedff7b319d4079ffa9c01b73f3f63ab973807762c2e4009ed1c97fc948a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/73.0.3…
+94eb5c7e174dd6394b55314a4bb9d097b5a948cf316faef65f13a9eb562e32be | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/73.0.3…
+d0eabcc5fd3bf3fc9f8812f4302a11d9b8d7512b028cdd90d81cb60a3194efc0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/73.0.3/…
+b23e7c43b477b396505086f97b3477ac0d37193792e1eb9a337bfdca21fa6a0d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/73.0.3/…
+0db7f3a1f38177407cc56d121db30fb9d488f41eefa36077bb9baff04657c6ca | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/73.0.3/f…
+fc9345e1df7bd073fd9b724ebee9b850c06173ab918b2f273528da70389d0c1f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/73.0.3/f…
+49023e83c3983e2063d9405bffcecc2207fc82da8d2c85e5e96255a73d79673f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+ddd6494224d01a44f0935a5a9eaaebc1951b8e8e3f1175e6d3059d654e499069 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+b1b2d2464d3e37e21b47aeb8b2f1b5af13f27543cd49f719e3738ce893bbbf1b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+896dda6d3f3023c62714a47871d3ca9b15fc6de135518895dc396a7e79bb23c2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+68c5b1b662be69564a0d7f609c1c7c956a07a744010562277dc89f8c1ca741ac | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/73.0…
+51609201b75a99ea669925b7086ca2ed1dce41079633a70558468c37f34c3428 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/73.0…
+cbc3c8601fdaf98e805049d7e262ac44ce448b6e1a63b74ca0d19d571d590a2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/73.…
+cb36bcb60b2beeb10593bbfed5f8fa75fe28620f700a792701bd4a73ad02aee3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/73.…
+73455502add091f9f5620a7216475c9e83c235840b057fc7a2bfc6283fb9042f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/73.0.…
+87407c404cf59b0dfe2b67d1e557d082f248facc5a689a9ac405142af1a427b6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/73.0.…
+3697e7ae4f9479c2cd1ecb6ee81a12627e9a02cf1030f80aa1d9631869350c4d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+0b414d21eaf2a0cd9f43d121cd38897f6e233dbbb701dd8589103880a87c79d4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+273b5bcfe293d286ace960fb9200cbcd5ce9d05ccae34e9acc57b54f8b7043fa | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+b2c4ce646748e103c6c014c1bf7807595e53a4fc4111984295d64791ddea5a7d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+c0458897a9280de5aa0c8369d96b7f34e4444617e6df28558a8130bbc4d3d2b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+4175a14a4074994e5c66e5cacfd64a326e9b95a7100723afa0879d92f5a43179 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+f8d5f4717445f4a3845e14c5e03abd556b39868bb64ec2be021c4f02303d5e1f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/73.0.3…
+5df147e52b61756c8fe4a60ecc55343c8f3553db8d019938d4f79d3a2a2e40a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/73.0.3…
+02f2fc043ab9c5de724b287f8b4cc7f8f9e86aafeeac6b9453213e16daa2b944 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/73.…
+1f423b443cef6326868cc1573c917c65eddea81d10da591c95beaba2c1406f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/73.…
+19d5346f601edef76e0cc48d21af9c98cb9f0113b5dceb22ea5022f990d2a7df | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+192911f74c79d47cbc2124b383c015e54afeac543befc9e0f8a16648e6fd9952 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+5052aa3ed2387555780c5f630333fcb3330c480b8e513a6a482e3ca2581dc391 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/73…
+9535c283cf146f27d5ca9a7017400b04d681b8f088247de5855733610b6e7c60 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/73…
+eee3fef8cc33f30832b4b56a63acbd735c2bbe97e9bb8d23c726b54a46780d41 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+74f3e0fbc334d9d7593716fcf0f87ef16bf7ebe31fe71e891153fa54b1a94197 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+72b001ca36b87111f1f261eea32eacf31f5abc0dcbd85e5d63f5beed8d938498 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+95b99f092c718222bcb86f992ee1c6192f5fdbd88c211f93ebc7ed49e4be8cfb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+42526b88198a2cbd910b1ec27aef8bd93520c65d0755b6c041b6c698392981a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+a959a0b420e9293d48f5b86da4a511865bb47f2232475391403b7fc4b430c3bb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+c5984b5d09f1c652e686766a43f1c02704a516c11d613ede97929c5c2b539fb8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/73.0.3/li…
+6aa264d8515a001633eea0e1b92d5ba251640e90de2b69a3aaede56a633930eb | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/73.0.3/li…
+504b56cfbe99e06e70d4feb47c4e910f4e6b7f923bd2c3b58bb81554c1311ee5 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/73.…
+579d897481f031a235b94046a30806f9f349bbe9af86f901c83b7c3dff65db7e | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/73.…
+e6ff5bdb4f8372ec9acf9d89646cf4169a2af8566892c19eec98c93eaa9e96b5 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+e923ed086adafe9269ba3794f4a31ef0c20c5a224399fe4a7566fcde5d9d91f7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+a469c7e07ce0b8fa976507f534b3f942b488d819f0a1a254a0b22b66386fe6d8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+1c8c2d4d1c9bf94438f72507c23bd4005ccd39e7e5c0e9dff017f2d10698db17 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+f5a4aed033dac1896c856437183ad1b86bc1e9b05f9097e5c2bfc669ecbb446d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/73.0.3/li…
+2786152ab92659bc375aec537cf0e2c7221a0973ff94cf4c0c1848a2f5a0deb0 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/73.0.3/li…
+6a3c45629bf4e13ed742c95f22bb00a6a9235670b5ef97d3fad5147047febc05 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+551d807903ee2bcb566f62512a36bf0624ac093b6d7d5932811efc8fed97ca3e | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+be6262c3e8e4086866b5ef1b6c3efc89bc280b707f66a651fcb9549a17e32d51 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+c91727b253230ef18f44d18d6a50d578b1e54349474583ee176efdd0422431c3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+08ffd378637b8a10855d45740823d4a9c273699177049034ac63b8950c1eec28 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/73.0.…
+569bd431ef7e46e805e57874a21a91da6a8cec863eadff2dd5b85b4c68f6b1b7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/73.0.…
+63f3504b9097dd3fe791baf9e0c1b804cca20c68d8dab956094477ba975903d8 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/73…
+0acbd61f2cc381babd0820c1e751b7735d598989ee40def83499376f858d4340 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/73…
+3efafa346a192967bd72946f063853cbb1e957b7d1a7053517b66fae4e279f9b | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/73.0…
+09a0327e49147819446eec9e86ff01d2e5558f0cd770f2268038b7d9a71a1175 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/73.0…
+2887a688ca6b257849cc9cc19c573a3568310ad01d53ac3261b91f72892573dc | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+dd322de39885cf7788f95c42353e76b0e4a3a49eec21f37d61144aeced125ddf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+8f1af21d2bba5153224d3b25579f607b1864fb5d0129340090ff8fbef964492c | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/73.0.3…
+036d65d39f4f33ecb43c8bcbed4c7f9378b4b17965c08757ff0c618d99aeb10f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/73.0.3…
+40994cad75fc76f92f9461e0d548e35f1a4d80e56336305d0b3c77bfe92618f5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/73.0…
+70f0e1f7ccc21e228ca597cbb3408b0760bb7049d5c37df83283da6ca43ae19a | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/73.0…
+50ecf4685716648576e7d1f7d515046548b209125274a715b2dd496b925309dd | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/73.0.3/…
+5df55edad3df9848a61eaad9f185853a177aba4e06bd4fba1ef07f8e9fdacc9e | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/73.0.3/…
+489d8af504015a2ed04e3afa77e0e14c0cff604204f2d86ed9f8b793c6faf3a6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/73.0…
+5cd73e9ec463a40ae3aa40f9c9071d42a51a55f7a358717205efd66fc2990d26 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/73.0…
+04259ad572ec6a115fb8bd47d670ddf9bba5956320aac7153edede90d8b4a79d | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+fc1bd1fcb5031cc8ee7c0d15b603bacfdec9d4827e1dd32c383405a6b2208b32 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/73…
+a84e0a5e6a2e7ccf01199a4d44f3e73e80216a05ade7de5a9a00fb035275aad7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/73…
+e226502a506a8f99bf2e7f3b33c276e2772c98f148ed2f54c700910bb7fd78eb | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/73.…
+17345a94a232282328b4b0e63626fd57b81269403979b8478e3f8d8b4b9790e8 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/73.…
+083bcfb471cbbd1dce87709953051dc36c0873f45b6d5ed60f3c58c5e6ab6730 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+c53258cd336816097caa71d15edfc9ebe9e9767851bd679b02fb8905c51fa8a4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+d6e6b960d31f7cdfb1cf95872ce81c3780c7fc5e369efef46f118d6806c2411c | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+05c27ca9e513487bcb7a67b479dc6d8950cf25f02ba91ad833c160e540209f5d | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+86e41f0678aad62b0098d9ee638cdc0c12c063d1bab5c84f7d1e12ba8a6615aa | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/73.0.3…
+7be55332e83d7621fbf262ac8d6d4d0f84d674bc8c7467a1a46cbc8fc31b9d6b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/73.0.3…
+f3cc185bfe40e671225aa6c2555cef4db7382c569da6580488cda053d73a9678 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/73.0.…
+5461d510560a7e2814099fb271cdd37a3591682330f0e952ad7928aba339671a | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/73.0.…
+d19e50c0207f782ecce7b109232cf09529fc46720ce961eadf33b70b52f3680f | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+a895a4d33f1d91d3e7c7e822c23f99727694e67e2d5b05ba6ff0f177d4875501 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+f102797958eee931fa6003367175bb6e1b836be921894d67f1a87d13a9df4ccb | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+1279b2e5719a10d6188c21533880f8575eae795921dbdd22389891590333ea6d | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+541835af29d1453905668ad01be21c20eef303de873069d9b8e903981d36a108 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/73.…
+6d9bfc003be350569cef150120bfe5ff29eeab360a8e02a61a6cf2fe20b09f70 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/73.…
+3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/73.0.3/ui…
+8cdf856c99cff104aa3cae54cfcb8e525099e450b2956e4e33201fc387e69f85 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/73.0.3/ui…
+bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/73.0.3/ui-…
+f0a0ced0ece059663601e9e8e1d7dcfc546ff2130d6a3025eefeb880f94868da | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/73.0.3/ui-…
+3e829b30496a0dad0352477b4866eea7c468363c365a3a4efc0a0cd7d1252957 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/73.0.…
+8bee0548ee1f8ab667c6739d1af228df67fc7f79fb4cce1b4618855dbaf73ec6 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/73.0.…
+f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/73.0.3/u…
+34433fc57454d5d980ab0b77546431a86294d9fcae6d146e9ec7512ef2c56f37 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/73.0.3/u…
+f53d800a8e1a38932fb6d2ce07dea3c0c413e5480a4bda6aadfce9947e7258c5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
+f7d2e354e61287384cd20065f9198153fdaa4da385bb3fb83ae425924b76c278 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
+079b282dab3efbdd44aa8f93b73fa3afafefe95b35c8b6a173a07a095a1c2979 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/86.0.20210…
+708b41da358580a47e8eeb0512ea4039ec4bd662fd8d72ae1e448f17698bf237 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/86.0.20210…
+c9a1855277e7863529fd20a6bdfd09659b472026a98b547b5fa6a19c5ef0d67e | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+22cc8c400823e3fc8eda2e644083b137a9fe867333845ea29c57051349afbb3a | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+60e34ac4879aa0f8e32fb117669b09ee8946aa34e9372cfe0008995807e876a7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+0b981a04d70ee3b438359a3da2548f56b188d594dd67bd297a09f0fa0845e348 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+5d942e4a68aef1fab1b219f51e2882eb61dfd27d4bdcd9265b6d375ce5e5fb3b | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
+681374f4e97bd97098c1266973d89167ff9c592ccb89617832e224135af72637 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
+8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27 | https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-p…
+233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
+b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
470564ff0a452da1c96be4ca3a9cdeceaa2912537ee2a8def486f3b383d43f15 | https://plugins.gradle.org/m2/com/jetbrains/python/envs/com.jetbrains.pytho…
+952cbfcc5f21beeccb5925cc5ba648af09839258441dd44d087d64a57d34e87a | https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.0.2/grad…
+62f29168dc2ffb580c44aa6021f655051a9cb0a48dfd47bc7e4e8ca6f963adb0 | https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/4.0.2/grad…
6438812f927b505a4c4ef2703b45433a1b99e45334526bfed25e71e1a79abb14 | https://plugins.gradle.org/m2/gradle/plugin/com/jetbrains/python/gradle-pyt…
317aa4c467a37d5fcab6657c326a4069ea8e8c6dda951ec2091ffb95c596a2a3 | https://plugins.gradle.org/m2/gradle/plugin/com/jetbrains/python/gradle-pyt…
aa42cf65e9f7475bc7cb2fa7cb7dbf99938dd47de864bbed68135e5a12d3a482 | https://plugins.gradle.org/m2/io/gitlab/arturbosch/detekt/io.gitlab.arturbo…
@@ -1129,3 +632,477 @@ b914cbcd8e55e76f221cc863912c38b1fe6ce56800300c147f85410aaa8789ab | https://plugi
8ec81474695b94779488b99183955cf0e1f50fe4d048af920b756ca71b72ac90 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3…
3825cbc39ac9b557bf11ed52ed8552200831004a60e845eba61c77ba972a2d9f | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
0e10935a94077c217ec5107b451c0859e89a27f67fd09543bd044c798cb154cf | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
+b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
+850c01bbafd141a724717da4e3949414a7d9c7817af55609881295d327196102 | https://repo.leanplum.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-5.…
+a5c9bd6f2b3674883e57a8d3300772bb7ca98d8a1388eb8e49f197710dc5e0b8 | https://repo.leanplum.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-5.…
+2d07df02a6a005d1aef3ad79536876765f4ed5f4ad59ca8cc33fd98274ad8b39 | https://repo.leanplum.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.4.…
+95528938a88d19291e5f806201d15c70f7b6699ac554a7688c2677f8104eb9f6 | https://repo.leanplum.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.4.…
+816dfed0ce6cc5d2369188b0fc93a4a0d3190b0f98aa61558e54910de3d82daa | https://repo.leanplum.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-5.…
+c6035475a5bcbfe4d33dede02de3e91234e25ca7b8d75595fac8cb52fd6f3131 | https://repo.leanplum.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-5.…
+f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
+770471090ca40a17b9e436ee2ec00819be42042da6f4085ece1d37916dc08ff9 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
+2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3 | https://repo.maven.apache.org/maven2/classworlds/classworlds/1.1-alpha-2/cl…
+0cc647963b74ad1d7a37c9868e9e5a8f474e49297e1863582253a08a4c719cb1 | https://repo.maven.apache.org/maven2/classworlds/classworlds/1.1-alpha-2/cl…
+f6b9fe1101896f068d64bcad7b5927cbab59c5ab6b7efe96e72139d68ecc27f5 | https://repo.maven.apache.org/maven2/com/adjust/sdk/adjust-android/4.18.3/a…
+439a641e67b8e504eeb29e3f4704eac42b660c3f83cff9be31105ddf7caac755 | https://repo.maven.apache.org/maven2/com/adjust/sdk/adjust-android/4.18.3/a…
+9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05 | https://repo.maven.apache.org/maven2/com/almworks/sqlite4java/sqlite4java/0…
+2d4cdc52be79184386d74333d1c4466b7960f83505bfd5e596e76c5ab6ee3bbf | https://repo.maven.apache.org/maven2/com/almworks/sqlite4java/sqlite4java/0…
+256ff34118ab292d1b4f3ee4d2c3e5e5f0f609d8e07c57e8ad1f51c46d4fbb46 | https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-cor…
+0d8f415d56320fbe3883ab7adee73bbb2c9a69c2a49af3608fd6b1efa15d8b5a | https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-cor…
+3b51994c1a3a29c2c89728226c0be14b69888a1bb0ef311f8d65904cdfbd9358 | https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2…
+b9b8f388fd628057b1249756468b86726c8fd5816ce14d313cb40003a509beeb | https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/27/oss-parent…
+def9b4225fa37219e18f81d01f0e52d73dca1257a38f5475be9dd58f87736510 | https://repo.maven.apache.org/maven2/com/github/gundy/semver4j/0.16.4/semve…
+32001db2443b339dd21f5b79ff29d1ade722d1ba080c214bde819f0f72d1604d | https://repo.maven.apache.org/maven2/com/github/gundy/semver4j/0.16.4/semve…
+cdf16ef8f5b8023d003ce3cc1b0d51bda737762e2dab2fedf43d1c4292353f7f | https://repo.maven.apache.org/maven2/com/google/android/apps/common/testing…
+d1e7dbe189b9dbfbfc31709590b65c766d654324de1ac886427333c5ff9adb0e | https://repo.maven.apache.org/maven2/com/google/android/apps/common/testing…
+7b0aa6ed7553597ce0610684a9f7eca8021eee218f2e2f427c04a7fbf5f920bd | https://repo.maven.apache.org/maven2/com/google/android/apps/common/testing…
+d46777ad3ea8bca73491b2e02fc85b3664486abf5314cc4dc6740908bd855330 | https://repo.maven.apache.org/maven2/com/google/android/apps/common/testing…
+97db1709f57b91b32edacb596ef4641872f227b7d99ad90e467f0d77f5ba134a | https://repo.maven.apache.org/maven2/com/google/auto/auto-common/0.8/auto-c…
+0ee24e09ab5d77f45545bf487868f45cf742127c9a77a2c0a92b006986b5aa9d | https://repo.maven.apache.org/maven2/com/google/auto/auto-common/0.8/auto-c…
+c98f1b0978cfd24712c27388e040c50ce0692252b3aa9448603d9efa05ebe8a8 | https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/3/auto-par…
+31a44f00ba213f7a1245809d6ba7bffed40c8dd7d571f32016caf8732a926961 | https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/5/auto-par…
+05f740c6648165db00cf618dd56c200c4725e358e6d54f5853e0bec15734ea0a | https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/6/auto-par…
+a46426fccb5d32705ad9cbbc996f786bd048cc8cbdd21db046500169f15a4356 | https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/7/auto-par…
+e422d49c312fd2031222e7306e8108c1b4118eb9c049f1b51eca280bed87e924 | https://repo.maven.apache.org/maven2/com/google/auto/service/auto-service/1…
+51752efb14151ec2d39c8581dadce8ef8b7c58b90f5eaca3f596998acb1ea87c | https://repo.maven.apache.org/maven2/com/google/auto/service/auto-service/1…
+b48b04ddba40e8ac33bf036f06fc43995fc5084bd94bdaace807ce27d3bea3fb | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annot…
+1c76cd462fc96e7aa96dc70ce82f0d54063d6df16db35c9c7d9cc0d1a99d3fff | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annot…
+3677f725f5b1b6cd6a4cc8aa8cf8f5fd2b76d170205cbdc3e9bfd9b58f934b3b | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annot…
+6fc498858e0cd1387595af38957820cb341d1e687ccf753e1cbd982f46ef4fc3 | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annot…
+27b640c82179f5cff62009c0b72033d9bc60f60e9902a66802274b7fe37fc81c | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-paren…
+b9d2d3aa6919d5f07e18c7cea942be9aef3b650a8f1e68f33c854a25c09c2049 | https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-paren…
+feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a | https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/1.3.9/…
+1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468 | https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/2.0.1/…
+02c12c3c2ae12dd475219ff691c82a4d9ea21f44bc594a181295bf6d43dcfbb0 | https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/2.0.1/…
+766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7 | https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/3.0.2/…
+19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe | https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/3.0.2/…
+3736463859ec19267295e894940ae82a8f684413031122fe35ce7cff7e30a774 | https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.6…
+c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f | https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2…
+2174415a647332d30fda04bd1cfc708a3ecc84eaf7517f596188d8244e103911 | https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2…
+3aa576b5671d0e26d83d7fdb7186810b5672f00bf8e72184260bcc7c2d7dc07a | https://repo.maven.apache.org/maven2/com/google/crypto/tink/tink/1.3.0-rc2/…
+5b9a11c11183d011de9a9a5490962d78a4d4bfe7579b0c5be4afb18a222e3f41 | https://repo.maven.apache.org/maven2/com/google/crypto/tink/tink/1.3.0-rc2/…
+550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64 | https://repo.maven.apache.org/maven2/com/google/dagger/dagger/2.24/dagger-2…
+477bdf6579ecc9cc8f99a565203f6244914f289d87e7efbdf96243fa58f9df4c | https://repo.maven.apache.org/maven2/com/google/dagger/dagger/2.24/dagger-2…
+6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_anno…
+5e0258ea1ba4e51a133742680bc22448f7ab214be4073e8619f645ef1be42dd5 | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_anno…
+3edce6b711ba368efe16b9b7aacb0214fbd648414cb9b965953a2e7ed89a819a | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_anno…
+357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_anno…
+8d175561619289a527573cfbdcf872eb5c1216cf9ab692a0ef3dba6d793f63b4 | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_anno…
+c460902ddf5ece68832c6b271ce52a0928b05cf3a6ac81a8f548c73cbd541138 | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_pare…
+767525d9a81129cd081968382980336327be4162b1e2251a182911daa733c123 | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_pare…
+8d3b5b9fa211979e9c425e989825c07743d2eb4dc8c20ec61de0f5b3dc1a6333 | https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_pare…
+a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26 | https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/f…
+e96042ce78fecba0da2be964522947c87b40a291b5fd3cd672a434924103c4b9 | https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/f…
+f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04 | https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/26.0-and…
+317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696 | https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/27.0.1-j…
+f31a5846bd9e14a4c374da1b9b146a5715ecdca925e071e1d2bf4da2daaded90 | https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/28.1-jre…
+e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4 | https://repo.maven.apache.org/maven2/com/google/guava/guava/27.0.1-jre/guav…
+6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36 | https://repo.maven.apache.org/maven2/com/google/guava/guava/27.0.1-jre/guav…
+30beb8b8527bd07c6e747e77f1a92122c2f29d57ce347461a4a55eb26e382da4 | https://repo.maven.apache.org/maven2/com/google/guava/guava/28.1-jre/guava-…
+74af0e8dd935894ce9bcb8e2842dd0001581b84cb6a7751c3ef9314011399ba4 | https://repo.maven.apache.org/maven2/com/google/guava/guava/28.1-jre/guava-…
+e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069 | https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/1.0/…
+53873caf26bc1ed8a567ea6c939ab2aaa3f47a5e32d5cade95ddf5080d23238a | https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/1.0/…
+b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99 | https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/9999…
+18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b | https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/9999…
+2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6 | https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1…
+f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be | https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1…
+21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b | https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1…
+5faca824ba115bee458730337dfdb2fcea46ba2fd774d4304edbf30fa6a3f055 | https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1…
+c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd | https://repo.maven.apache.org/maven2/com/google/jimfs/jimfs-parent/1.1/jimf…
+c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd | https://repo.maven.apache.org/maven2/com/google/jimfs/jimfs/1.1/jimfs-1.1.j…
+efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44 | https://repo.maven.apache.org/maven2/com/google/jimfs/jimfs/1.1/jimfs-1.1.p…
+32ff2307dafc658d0b55b2ad841d625aea5606bb9b0316605165cd6980503243 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.10.…
+74ee43b09e711b13d568811e12f33bd16e6087b15f1aeded22b0dfe89ae76856 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.11.…
+619b0b0dc344cb141e493cbedc5687c8fb7c985e609a1b035e621bfab2f89021 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util…
+146660182d07798ced06fa8e8ae3b9faa90aa48cf3c6adfc67db9371188ba502 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util…
+161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.10…
+b404c1b093ec9dea888e02c8dfe8662759586b94efa4f97061cdfc1bbfa15af0 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.10…
+8cacea2f7a042dabae295c509dcdbfe32a49aa3708eec6ddb8efd8593aa0b4a3 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/…
+1aa38c0b0891b910e84642c5116bb1b54d86a5959f37c9c38a34ede600bdd55d | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/…
+6dd84a508125fffdefbd583fae12bf166aa902511b570ca54fa9efa45f6dfe80 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.…
+c3e2aee04dd8698f8b21ce635c318f8964d52fc9ca490a01a64cdc7a6c44d362 | https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.…
+bba7724e02a997cec38213af77133ee8e24b0d5cf5fa7ecbc16a4fa93f11ee0d | https://repo.maven.apache.org/maven2/com/google/zxing/core/3.3.0/core-3.3.0…
+ca1c3e4c4848773d4e5afa301c12bc18aa4b26d2475ff6961ce026f2d940aabf | https://repo.maven.apache.org/maven2/com/google/zxing/core/3.3.0/core-3.3.0…
+7c6951b21684f68ac4f6983d26e0f0b01ab5e7066f8b74b4acaff6f638ed1ff6 | https://repo.maven.apache.org/maven2/com/google/zxing/zxing-parent/3.3.0/zx…
+2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439 | https://repo.maven.apache.org/maven2/com/googlecode/json-simple/json-simple…
+47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab | https://repo.maven.apache.org/maven2/com/googlecode/json-simple/json-simple…
+757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76 | https://repo.maven.apache.org/maven2/com/googlecode/juniversalchardet/juniv…
+7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b | https://repo.maven.apache.org/maven2/com/googlecode/juniversalchardet/juniv…
+e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab | https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.jar
+a0700d84efe7cc3103557bd0522f9443681b96ba9559c4bb7f9dc9bf35243485 | https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
+a6e546ac89a9701ed5158082e49ad9b41accade443f02ac41f46986472f4a5cc | https://repo.maven.apache.org/maven2/com/jakewharton/disklrucache/2.0.2/dis…
+ef8ee116b3dbdc0115b4b27be60a02d1d3c7a6f2803b2d79cd09ca5dd72ebb9a | https://repo.maven.apache.org/maven2/com/jakewharton/disklrucache/2.0.2/dis…
+1690340a222279f2cbadf373e88826fa20f7f3cc3ec0252f36818fed32701ab1 | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.10.0/javapoet-…
+83f0fd4baebec3bf29ee3ad2c024b3065ddef825a5aa29f7dcf5c189f9fa2962 | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.12.1/javapoet-…
+a71ac3d8f27cb9ad32c87b5d8959f22d671aeb460c7a355d09f577e4c57e4c5f | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.12.1/javapoet-…
+f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e | https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.1.1/javawrit…
+d47fc646324c22c66f2b0e0e743c850dde9a51990c53925e7501d960f2e8df84 | https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.1.1/javawrit…
+fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0 | https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.5.0/javawrit…
+e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0 | https://repo.maven.apache.org/maven2/com/squareup/javawriter/2.5.0/javawrit…
+4d22b70c4b77fc0aa499158e7bb085af9882ffbdc69331325e7869aebe4fb69d | https://repo.maven.apache.org/maven2/com/squareup/kotlinpoet/1.7.2/kotlinpo…
+899faddd38198fddfe992bfcf3ab8c0746f34479d7e141e6021c66744e9919be | https://repo.maven.apache.org/maven2/com/squareup/kotlinpoet/1.7.2/kotlinpo…
+d9239c3ce555c87165b8ed060f0dfcd9e58d25a947d7b1bd669dcf37f4ab7deb | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-and…
+a39975d3ba701157babb356b23ab160493c98939a2cf7656c71308669bc80e1a | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-and…
+c05f763a83bfcf56a763b0e99ba18ac5b3eef2dbcd7d87202fb0fdce75ab91c8 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-and…
+6975ee444e993c1b413fe64fbb2b9e7c20f131c7135c78c94d11c0cf927255f1 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-and…
+14ba5af729f71885e430461026b850b091cd85a0a61b65fa99c4e99625031ddc | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+a89dc25a9710f6b95378046eecc822e81cdbaee2a3e19e0140a138eccf3bfe27 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+d3f10fac2c66505f1fbf59ec5bb29d914e4dffb184672422fabc57bc6fc1f6b3 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+1fdcfd4ce950fb6f3f57f72362f365bc99124fecb5889662c3e81a1c4de44bb8 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+182a559942ff385a603369a975f13f9179c079cc10ca82162b90b6647d744a1d | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+66ef4959e7bff7f963f93e730ce4ade81eb4ff767043e6220797d588e3ef9bf6 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+526533e2ac8f9f4b070e515b5292cb1780e35f6b40a95d67ba83f26040283770 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+a7a68702f1974981f57151d2759036ca19461db2ee9378d2bc551aba92c1f417 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/leakcanary-obj…
+4ff14ae10ac34c568242b26cfcd9d6562309fea29f30fe0ec17104ee0656aa57 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/plumber-androi…
+7231549464e6364f6f5072fdcf579e79094b8e0c01fa091ae89cfb0d7172c7bd | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/plumber-androi…
+5a073a5db384c48bd6795a3b752477e9911f68edde255acbeca5b46200c9288e | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-android/…
+adc8f2a0690cd2f6b7cb95f5721c83197fade090c5f963d395e5d24b788e517a | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-android/…
+c1f64a7e86c7f95d8de59d2a1d70dbde5966fb1522910f43bba45a7a06d0a0ae | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-graph/2.…
+ff947605e573286ad4906f1f1fcff385c4dd398e2eb12d124d0db18dc919c181 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-graph/2.…
+78163bb080d2b0a15ccb0d053559ad0b7cb852391b1c79e0b85ba94c43a59bc7 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-hprof/2.…
+d51522e8a7b40383b6cdc876580aa8083a13d739e5c235940e9fab82cbda5a1f | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-hprof/2.…
+d43ca38b1ddc1647121863e8051592ff31054f1e93931fa96e4b0bbd6446184b | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-log/2.4/…
+240169ea8133ac80974489ba3047bc223445e6b8e088a15d29393a54a0db3171 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark-log/2.4/…
+a257a1c2def6a13247b53d2333a36d4aebb354191950bb6976b392b18c2853ff | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark/2.4/shar…
+f94c218942455b62621a38dba9f4d4bc80bec6883cf2ef230e405c5b180f28d9 | https://repo.maven.apache.org/maven2/com/squareup/leakcanary/shark/2.4/shar…
+ba48439634f5e285de35f6135880c485934b5d45bb26f42cd9d9636f3c4ff56d | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/mockwebserver/4.9…
+26c9d5c003dfe87dfd1453f285955a91fc51ca17e0b31243860bbe44263e5255 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/mockwebserver/4.9…
+dbc2bb04ecb002b9f4046263ccad996f4a3d3c59a0cc98837e300a6700571f7c | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/4.9.0/okht…
+4f8992dde784509e80917cabbc8406a7137e5f2ba2c1ae5b7250fc182a45bd88 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/4.9.0/okht…
+e58c97406a6bb1138893750299ac63c6aa04b38b6b49eae1bfcad1a63ef9ba1b | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.…
+fd621988f7f6957025735dc6dd090b00a20f3a3bb8d77ca79036077f629b140b | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.…
+4496b06e73982fcdd8a5393f46e5df2ce2fa4465df5895454cac68a32f09bbc8 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.8.0/okio-2.8.…
+26214068fd4c7f437ac8fe8576802a9a9dc151c457582807ad9af2af2e8c9481 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.8.0/okio-2.8.…
+1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4 | https://repo.maven.apache.org/maven2/com/sun/activation/all/1.2.0/all-1.2.0…
+993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce | https://repo.maven.apache.org/maven2/com/sun/activation/javax.activation/1.…
+f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e | https://repo.maven.apache.org/maven2/com/sun/activation/javax.activation/1.…
+6443e10ba2e259fb821d9b6becf10db5316285fc30c53cec9d7b19a3877e7fdf | https://repo.maven.apache.org/maven2/com/sun/istack/istack-commons-runtime/…
+6d704e450a816a45bce806ba22c22fe83d8e8dcf7a71517603de630a1726809f | https://repo.maven.apache.org/maven2/com/sun/istack/istack-commons-runtime/…
+6f83d3c85fdca9ef24010cb2f652aab1a508bff6331c087b60d0301782b78c6f | https://repo.maven.apache.org/maven2/com/sun/istack/istack-commons/3.0.7/is…
+c2204f54b43593808c9af6502865ee71679823156dabdef341e71d35662c7aa0 | https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/2.3.1/ja…
+f699ef37ec7966e284742dfca83075221179041a9a49aef7991280192604462d | https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/2.3.1…
+b56383eb4d43498b145d379e2a93d5fcdcd8ff9291f89b58b82cb91658dbf14c | https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-runtime-pare…
+7a8473e935504841c606686d84e9c017a739ac2c144fde687aa003a7dd44de7f | https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/2…
+785861db11ca1bd0d1956682b974ad73eb19cd3e01a4b3fa82d62eca97210aec | https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/1.…
+bbc796ab84a6778a751c2eff1136078abd2b4d35b5047062804f3582ef3c42c8 | https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/1.…
+cfb8cdad4c0dd05ed8cacbe146bf1718764403947b9de8348e1bfd42f62ea73e | https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-pr…
+4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569 | https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.10/commo…
+bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb | https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.10/commo…
+cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581 | https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2…
+b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2 | https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2…
+daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636 | https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/co…
+c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20 | https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/co…
+37001f3a481c72e46b9f94454f7c3a684089f1933638e512c8c6f036800ad619 | https://repo.maven.apache.org/maven2/io/gitlab/arturbosch/detekt/detekt-gra…
+d35101cfafa78658705ce74a06b8db75b2e624cc8634807672ca8bacb245354f | https://repo.maven.apache.org/maven2/io/gitlab/arturbosch/detekt/detekt-gra…
+54e20f25454e627db4623ebbd9972983f917afb803e971e02103717a7caa78b8 | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-api/1.10.0/mockk-…
+f77d7558661ffaca21d715ec59bd50ee47b4120fb1c1304547ffd64996902d35 | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-api/1.10.0/mockk-…
+d2b9f0388378687808eb387d10dbd90ce70134f5e5fe71dd88384e7e14f672a8 | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-common/1.10.0/moc…
+b5547a1a09948b33b9b41aa041084b0a34c92ec41bb91ca8d0ce8ad31486a8bc | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-common/1.10.0/moc…
+037f043baed4f206a9e585723244174087f761d1fb2979f16f9956a580e49271 | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-jvm/1.10.0/mockk-…
+ed3d9585915f9fcc24d5e754e577b0a723b986376dce62dac539c7f75fbcbcaa | https://repo.maven.apache.org/maven2/io/mockk/mockk-agent-jvm/1.10.0/mockk-…
+7d04767dc397595b1de24b3331ef0256fe91e37941d7a8cd7a73745511bfaae1 | https://repo.maven.apache.org/maven2/io/mockk/mockk-common/1.10.0/mockk-com…
+fcd746dc322389a5d355e13283a855bb739e738d8c4b61dc48d95262ad3d31f3 | https://repo.maven.apache.org/maven2/io/mockk/mockk-common/1.10.0/mockk-com…
+c25ae05f9ec1ab007663c758c771eccc8e181773d22163e5ec814b042d8d81d0 | https://repo.maven.apache.org/maven2/io/mockk/mockk-dsl-jvm/1.10.0/mockk-ds…
+a246a76e38c2f3a81745cffd9bc7354aa16d19b4b9857309d5796e38887ca6ac | https://repo.maven.apache.org/maven2/io/mockk/mockk-dsl-jvm/1.10.0/mockk-ds…
+553bed792babf8263086a873aa2903302e01c718c47641793eb9853873c9b1d1 | https://repo.maven.apache.org/maven2/io/mockk/mockk-dsl/1.10.0/mockk-dsl-1.…
+8f2efb576c736fedfd789680d733ca5bdc5aeaeff9510efcc4baaac3cc404290 | https://repo.maven.apache.org/maven2/io/mockk/mockk-dsl/1.10.0/mockk-dsl-1.…
+6216f3b74600f054392a49563498b03cb11b47faf36d06f5a4801ef02cb7f0e5 | https://repo.maven.apache.org/maven2/io/mockk/mockk/1.10.0/mockk-1.10.0.jar
+7f34e3d5e788f85616c796223ce0a1d591889ecb926f497da2d1ada02459b346 | https://repo.maven.apache.org/maven2/io/mockk/mockk/1.10.0/mockk-1.10.0.pom
+a98c4be3c0e886163e5940c04217be1bd571bbf42e5dbe4e098830b186743fd5 | https://repo.maven.apache.org/maven2/io/sentry/sentry-all/1.7.10/sentry-all…
+f014af749024c57989ca2aa51b0a986f9d86d2669d074c1dee068a8f8da19562 | https://repo.maven.apache.org/maven2/io/sentry/sentry-android/1.7.10/sentry…
+2c8b59d68ba5e67fe784e7295f1594cb1e6d2233d3d741500d5fedfb515762ab | https://repo.maven.apache.org/maven2/io/sentry/sentry-android/1.7.10/sentry…
+3a0ae5d7db7b65ccb7e0be7b4ac5bb4bce8105f2c5aefc01bb78c2a1dd17abc8 | https://repo.maven.apache.org/maven2/io/sentry/sentry/1.7.10/sentry-1.7.10.…
+17c98ced8aadd526b0a5219d46f9e8b9463f2600b9907e7418d1abe8676c0e65 | https://repo.maven.apache.org/maven2/io/sentry/sentry/1.7.10/sentry-1.7.10.…
+74fa208043740642f7e6eb09faba15965218ad2f50ce3020efb100136e4b591c | https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil/7.2.0/fastutil-7…
+953b116521a73575eee990e3f2c36a892fb088bb2d9a3027c82193cb7a013ef7 | https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil/7.2.0/fastutil-7…
+43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393 | https://repo.maven.apache.org/maven2/javax/activation/javax.activation-api/…
+da2926f3c8be898643cc10acdec6de0b0351a57fb2735770fa0177b06ade71b9 | https://repo.maven.apache.org/maven2/javax/activation/javax.activation-api/…
+e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b | https://repo.maven.apache.org/maven2/javax/annotation/javax.annotation-api/…
+46a4a251ca406e78e4853d7a2bae83282844a4992851439ee9a1f23716f06b97 | https://repo.maven.apache.org/maven2/javax/annotation/javax.annotation-api/…
+91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff | https://repo.maven.apache.org/maven2/javax/inject/javax.inject/1/javax.inje…
+943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa | https://repo.maven.apache.org/maven2/javax/inject/javax.inject/1/javax.inje…
+cd1beaa4560dc4dfdb826b9d809e464db22526dfb54264bae78a6ff7efb08e1f | https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api-parent/2.3.1/j…
+88b955a0df57880a26a74708bc34f74dcaf8ebf4e78843a28b50eae945732b06 | https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api…
+12b20cf922773445c3445c2883cbf671fa982111e9bf9f875020f9313b3814b1 | https://repo.maven.apache.org/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api…
+59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a | https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar
+90f163f78e3ffb6f1c7ad97de9e7eba4eea25807141b85d6d12be67ca25449c4 | https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom
+4b8532f63bdc0e0661507f947eb324a954d1dbac631ad19c8aa9a00feed1d863 | https://repo.maven.apache.org/maven2/junit/junit/4.13/junit-4.13.jar
+9a0dc4c3fa2b086e708226737ef4bb37847c3cb1ce4e203517c09f6305b2267e | https://repo.maven.apache.org/maven2/junit/junit/4.13/junit-4.13.pom
+fdff6cfa9ed9cc911c842a5d2395f209ec621ef1239d46810e9e495809d3ae09 | https://repo.maven.apache.org/maven2/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9…
+f5655d331af6afcd4dbaedaa739b889380c771a7e83f7aea5c8544a05074cf0b | https://repo.maven.apache.org/maven2/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9…
+95b8b357d19f63797dd7d67622fd3f18374d64acbc6584faba1c7759a31e8438 | https://repo.maven.apache.org/maven2/nekohtml/xercesMinimal/1.9.6.2/xercesM…
+c219d697fa9c8f243d8f6e347499b6d4e8af1d0cac4bbc7b3907d338a2024c13 | https://repo.maven.apache.org/maven2/nekohtml/xercesMinimal/1.9.6.2/xercesM…
+fbd052d2d4cd16f707547c468621c6b7fb842c7ec8866d012ecbc6178de1f394 | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/…
+19907495fbc1c2316c8ebad76f07b96d101feb1a7e3c09bfe1526fd3fc6eec9d | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/…
+6f59f847f37a7a052243e97a3b24d6e834833fca3a48d6980f96f7779fe5ff98 | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.9.7/b…
+93d9d380779cd1768c52b4bcee82cbfaedef9a4a30de87ae06b441e1634fd38c | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.10.9…
+259079927014348a555c0969dbae9339c3cc33895a05ffec8e0a25dd50c82278 | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.9.7/…
+07b9ca6e2f970cb03f4b25651df1f2fce271d491b44e0409827887786f692d4d | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-b…
+40881d4948a871159346270f36945bc29025577c6cb57f6a5dd0c7c222069dac | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-b…
+2768054be7d61c4ec6f5e660e03ee70608000fe0f46d6119eee66675fff150e9 | https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.9.7/byte-bu…
+24d81621f82ac29fcdd9a74116031f5907a2343158e616f4573bbfa2434ae0d5 | https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.5.0/jn…
+10569e3622e974d3e66255ba85923c125d84fa257ef2543d8ac1c658d9ebcd10 | https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.5.0/jn…
+2b9f3497218b32c399d1ecbea0b00d4f4553edcf669919ed1e1a87daa77acf87 | https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.a…
+5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf | https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.j…
+5fe81b0255978f24616d37b10608b79498a5f3073e1d9b2038d8736a831f2608 | https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.p…
+281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1…
+30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a | https://repo.maven.apache.org/maven2/net/java/jvnet-parent/3/jvnet-parent-3…
+1af699f8d9ddab67f9a0d202fbd7915eb0362a5a6dfd5ffc54cafa3465c9cb0a | https://repo.maven.apache.org/maven2/net/java/jvnet-parent/5/jvnet-parent-5…
+26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://repo.maven.apache.org/maven2/net/sf/jopt-simple/jopt-simple/4.9/jop…
+7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://repo.maven.apache.org/maven2/net/sf/jopt-simple/jopt-simple/4.9/jop…
+f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://repo.maven.apache.org/maven2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
+31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685 | https://repo.maven.apache.org/maven2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
+75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264 | https://repo.maven.apache.org/maven2/net/sf/proguard/proguard-base/6.0.3/pr…
+2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907 | https://repo.maven.apache.org/maven2/net/sf/proguard/proguard-base/6.0.3/pr…
+cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f | https://repo.maven.apache.org/maven2/net/sf/proguard/proguard-gradle/6.0.3/…
+5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57 | https://repo.maven.apache.org/maven2/net/sf/proguard/proguard-gradle/6.0.3/…
+d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0 | https://repo.maven.apache.org/maven2/net/sf/proguard/proguard-parent/6.0.3/…
+5358b478d82555ab57afd7fc7231d603b40f977be7ca39f40c5ec54e767eb674 | https://repo.maven.apache.org/maven2/org/antlr/antlr4-master/4.5.2-1/antlr4…
+401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://repo.maven.apache.org/maven2/org/antlr/antlr4-master/4.5.3/antlr4-m…
+e831413004bceed7d915c3a175927b1daabc4974b7b8a6f87bbce886d3550398 | https://repo.maven.apache.org/maven2/org/antlr/antlr4-runtime/4.5.2-1/antlr…
+93bac9b6bc714d559904ed43242782a8cbe543cebf0104bb3ecc1786a9cb661e | https://repo.maven.apache.org/maven2/org/antlr/antlr4-runtime/4.5.2-1/antlr…
+a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4 | https://repo.maven.apache.org/maven2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar
+8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384 | https://repo.maven.apache.org/maven2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.pom
+da9fd92eacdf63daf0be52eb71accc10ff7943a85d7aac9ea96cf7e03ee3d3cc | https://repo.maven.apache.org/maven2/org/apache/ant/ant-launcher/1.8.0/ant-…
+08426143d37d770f3e4dae45b0870c3ab1ba512cb64418f34496025b72d16760 | https://repo.maven.apache.org/maven2/org/apache/ant/ant-launcher/1.8.0/ant-…
+ecbd655fd71d298eaf0787045b84324ce68936ad0de98c7a9c55538e539f2747 | https://repo.maven.apache.org/maven2/org/apache/ant/ant-parent/1.8.0/ant-pa…
+0251dbb938740ace07a53675113eee753ba389db65aebc814b175af50321620e | https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.0/ant-1.8.0.jar
+e6d920d5a1a34aaaebab1e6a82c36bbfd61f1eeaabc4534ee05d4faad56f1b7a | https://repo.maven.apache.org/maven2/org/apache/ant/ant/1.8.0/ant-1.8.0.pom
+ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d | https://repo.maven.apache.org/maven2/org/apache/apache/13/apache-13.pom
+36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494 | https://repo.maven.apache.org/maven2/org/apache/apache/15/apache-15.pom
+9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e | https://repo.maven.apache.org/maven2/org/apache/apache/16/apache-16.pom
+7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17 | https://repo.maven.apache.org/maven2/org/apache/apache/18/apache-18.pom
+1933a6037439b389bda2feaccfc0113880fd8d88f7d240d2052b91108dd5ae89 | https://repo.maven.apache.org/maven2/org/apache/apache/5/apache-5.pom
+4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd | https://repo.maven.apache.org/maven2/org/apache/apache/9/apache-9.pom
+2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6 | https://repo.maven.apache.org/maven2/org/apache/commons/commons-compress/1.…
+b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a | https://repo.maven.apache.org/maven2/org/apache/commons/commons-compress/1.…
+467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba | https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/25/c…
+3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c | https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/34/c…
+7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a | https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/35/c…
+87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7 | https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/39/c…
+c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7 | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4…
+7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855 | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4…
+b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73 | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponen…
+61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136 | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponen…
+caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcomponen…
+78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.4…
+c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpcore/4.4…
+0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpmime/4.5…
+dfbfd6ffe2a784ca9817c46365aa7f8a578320b805bde39d6f55a0b09d8aa8ca | https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpmime/4.5…
+f16b5ea711dfe0323454b880180aa832420ec039936e4aa75fb978748634808a | https://repo.maven.apache.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3…
+f52619bf2f5c5117f0af1c23adff3a9c8f468647be47fefc59b81dcec7e480e6 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3…
+d1e247c4ed3952385fd704ac9db2a222247cfe7d20508b4f3c76b90f857952ed | https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manage…
+ecf58351f8fe0c398b8b452216705bece5291b9b327d30202c16b28ac680450c | https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manage…
+d53062ffe8677a4f5e1ad3a1d1fa37ed600fab39166d39be7ed204635c5f839b | https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/…
+f658a628efd6e0efe416b977638ba144af660fe6413f3637a4d03feb6a1ce806 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/…
+b3005544708f8583e455c22b09a4940596a057108bccdadb9db4d8e048091fed | https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnosti…
+228367b7569fb1462a3eb1423bc2778e2fc7fbaee3d3767890c02b8924fa1889 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnosti…
+153b32f474fd676ec36ad807c508885005139140fc92168bb76bf6be31f8efb8 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/mav…
+62dd8e35a2c4432bb22f8250bbfe08639635599b4064d5d747bd24cf3c02fac5 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/mav…
+7450c3330cf06c254db9f0dc5ef49eac15502311cf19e0208ba473076ee043d6 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/11/maven…
+0c5a9770ae0271dc97bcc6cb0f2e809a40ba587cdce2556f9db59912c8e158fc | https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/19/maven…
+4ad0673155d7e0e5cf6d13689802d8d507f38e5ea00a6d2fb92aef206108213d | https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry…
+3db15325cd620c0e54c3d88b6b7ec1bac43db376e18c9bf56bd0c05402ee6be8 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry…
+ecaffef655fea6b138f0855a12f7dbb59fc0d6bffb5c1bfd31803cccb49ea08c | https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/m…
+d125b3ade9f694ae60ef835f5ae000b6ba35fba8c34bafd8b40a1961375e63fa | https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/m…
+24ddb65b7a6c3befb6267ce5f739f237c84eba99389265c30df67c3dd8396a40 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/m…
+34af0baedaef19375b7c1a7da967e9089d5e0754647fdbe9a302590392874b77 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/m…
+5fe283f47b0e7f7d95a4252af3fa7a0db4d8f080cd9df308608c0472b8f168a1 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-meta…
+9dad0f56523955b60a9903f4e8342891355d7a59c77f36a3b53cf6ff2e4df625 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-meta…
+9a9f556713a404e770c9dbdaed7eb086078014c989291960c76fdde6db4192f7 | https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/…
+0d25a88a1b1e44801f8912206a40ff249cb5702ee87cf3d243d5213f7bcf534f | https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/…
+d135cff96dcbbc8a5fab30180e557cae620373cf26941d4c738a88896a2d98ed | https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.2.1/maven-2.2…
+7298feeb36ff14dd933c38e62585fb9973fea32fb3c4bc5379428cb1aac5dd3c | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-file/1.0-…
+f7524cfffc9773ea75a9f7379139f00a57355e411009ea9529b7adf7ef93fde8 | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-file/1.0-…
+be214032de23c6b520b79c1ccdb160948e0c67ed7c11984b7ec4ca5537867b4e | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-ligh…
+f021eb07aebec822496f489a2d6ec5d3fa81a2717bfc8407cb0ebcaadcee2d7e | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-ligh…
+f095c882716d49269a806685dcb256fa6a36389b2713ac56bb758bf8693565a2 | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shar…
+f6775dc981540ffa10f33bd831f14608517ce38b90628e045707dd5bb5d1348e | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shar…
+e116f32edcb77067289a3148143f2c0c97b27cf9a1342f8108ee37dec4868861 | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-…
+85c3c8840bb21554faf159998146f7ca9ef1b951defb29ec4e8252ec463728fd | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-…
+340422be8f3e3c847a0a0bf944296774f6db81f2fa8b34912bc931a112a26919 | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-providers…
+025caec7c56a0cb4d86c45bc18ac3e23dba291e22ebceb76302a9a9b9b7183cc | https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon/1.0-beta-…
+7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca | https://repo.maven.apache.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.56/b…
+321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259 | https://repo.maven.apache.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.56/b…
+0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773 | https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.52/b…
+7e4a34c7b63d879c5cec454e2e47eb1e61e271a58672e7e548659f4f23742500 | https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.52/b…
+963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349 | https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.56/b…
+8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e | https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.56/b…
+64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a | https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.5.…
+dc4cd438a36462d013c2338c8e206d102a322a00f33729e8955ee219859c9ede | https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.5.…
+9103499008bcecd4e948da29b17864abb64304e15706444ae209d17ebe0575df | https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.8.…
+f23376b58ed795f2ff47426ac76b996d49e3918442e5d8713e3925f889a77799 | https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.8.…
+51d6c4e71782e85674239189499854359d380fb75e1a703756e3aaa5b98a5af0 | https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-all/2.4.15/…
+fc0d535d7bdb7ca90562321c2e8e2a35c377f113c6dd0b2062282e1f4676367a | https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-all/2.4.15/…
+92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53 | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annot…
+e956ab5d2eb48fabae12300d0cd2d3294d4a2a41abc2068c23cb4d60ad76cbe5 | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annot…
+47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annot…
+adf522f4839c35f5329ea97c407aebebfa8807b644852dc4d5cd7c97b7a6d2e0 | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-annot…
+18a03df16e2a184c582db7b125633c15fb7714027a84c1b532d72933dc08b81f | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-paren…
+4e9df546a47cf6304a1317c46870100a8726fbea11b0dd18322f957e4070973c | https://repo.maven.apache.org/maven2/org/codehaus/mojo/animal-sniffer-paren…
+fc648dcdc404f8bf66e0583914ecf980176618201227bea114fae85043cb755e | https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/40/mojo-…
+f819cad1b15b6a7791c8b601e96bde33765e4681395807db4537d2f0dedd493b | https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/50/mojo-…
+381d72c526be217b770f9f8c3f749a86d3b1548ac5c1fcb48d267530ec60d43f | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-components/…
+7c758612888782ccfe376823aee7cdcc7e0cdafb097f7ef50295a0b0c3a16edf | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-d…
+ef71d45a49edfe76be0f520312a76bc2aae73ec0743a5ffffe10d30122c6e2b2 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-d…
+7c75075badcb014443ee94c8c4cad2f4a9905be3ce9430fe7b220afc7fa3a80f | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/…
+fd9507feb858fa620d1b4aa4b7039fdea1a77e09d3fd28cfbddfff468d9d8c28 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolati…
+b84d281f59b9da528139e0752a0e1cab0bd98d52c58442b00e45c9748e1d9eee | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolati…
+2ca121831e597b4d8f2cb22d17c5c041fc23a7777ceb6bfbdd4dfb34bbe7d997 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.1…
+12a3c9a32b82fdc95223cab1f9d344e14ef3e396da14c4d0013451646f3280e7 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.1…
+2242fd02d12b1ca73267fb3d89863025517200e7a4ee426cba4667d0172c74c3 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/1.0.4/plexu…
+e246e2a062b5d989fdefc521c9c56431ba5554ff8d2344edee9218a34a546a33 | https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus/2.0.2/plexu…
+6cc1266cf306557b4f2d09cbd8cd6e75b5ef0c5773ca4ef763d4f730df947b64 | https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/2.3.1/jaxb…
+45fecfa5c8217ce1f3652ab95179790ec8cc0dec0384bca51cbeb94a293d9f2f | https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.1/…
+f8101b86157fbfc01949ffdc7c59ea71ca23b7ece25f6a79061fe01cb750ff00 | https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.1/…
+34975dde1c6920f1a39791142235689bc3cd357e24d05edd8ff93b885bd68d60 | https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3…
+4714d46cacf702ab2cd478d6048c5d9cc57abdb55f4c07b6b7aa72799e02d36c | https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3…
+66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9 | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcres…
+fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcres…
+70f418efbb506c5155da5f9a5a33262ea08a9e4d7fea186aa9015c41a7224ac2 | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-integration/1.3/…
+42f0be9bf98c12dacdcb99dd141d83d4dc5bb7c37a6f26684cd3ff2287667fba | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-integration/1.3/…
+711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-library/1.3/hamc…
+1ceb4bfb0f098ae29b935044b2363e11323313fe3ed2055df8b79737d5056277 | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-library/1.3/hamc…
+6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcr…
+852e1bf147fceab6caf7a82887dba2864d88bca6020524b67dddda073398d2f8 | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.agent/0.8.5/org.…
+c3b2f50b692f2b081d85613527917bc6812f922e1da469a11682653b16f283fd | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.agent/0.8.5/org.…
+cd2289b9f955c8064054145f3871e18101840ae73ee6b9f835aea51573506cce | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.ant/0.8.5/org.ja…
+4b74fc5373ad70d387f3738ce0e9d4b170944039739e2b12a87c24202c002282 | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.ant/0.8.5/org.ja…
+ad6e40d227647ddbeb4f47a04d1002299986d127b7244f8b34d7b742ba1ac1ca | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.build/0.8.5/org.…
+945818d150f89c03359ee9089568b2b83b4df4752fced02e6323f271481f0ddd | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.8.5/org.j…
+2df79bbe660731df5b4f7b8d343afff59aa8b7d9d552d9c2f6e94de71eb374ef | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.core/0.8.5/org.j…
+c83e687be88e74477519eb67e20cc77a98deefaed920cd2a5531863c23d95906 | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.8.5/org…
+574cc0a2a4e77a2939b2fc24cab92bca414d05d8a6ab9e48ffb8fbd7fe0ae725 | https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.report/0.8.5/org…
+1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5 | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar
+47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
+0a333de5068ae7453bb35586217058928c8f9409543c4e2a622094d3b48433bb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-allopen/1.…
+45d7e4ab59d7eee1e0740b79c17a12001d9a0a4e911bfd2b13976302bf4ed209 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-allopen/1.…
+f210c702efaea345adf6a14211b8d39231a2679a1f960da2e0692949b9df3ec6 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
+c9843ec810658da356c5ac2ae9bb2efa912e88b54262a0dc32d52ab40000c2e9 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
+41eb96531c250a13b9d6023dfcf9bf9d84db0419c4c94d5823104104598399cd | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
+dd556ad254f4ead2fb38fb88254dfedc8530c76041b20a93ff5744a82de50d9a | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
+745860fb134d8555a646c863b2e19cff3763f04d193f47d5414f49110bec6bc6 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotation…
+8e4c7d39c4a4412a45c752213003bfc138659a529e8f50ac622aae898bce1faa | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotation…
+a061a543aa052e328b22e0a8682b78d336c781110eceadac66d8ad0d265b04f8 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-comm…
+121d16ce077dc9140c8b4296488c516fd5af464f54beceebc6ed9348dbc25ecd | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-comm…
+8b997ae2b74b65e0e003e9fb7ffdbbad8f8dcceaae7f1d19d7067200c5a7e315 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-e…
+a88a373df8a2c2ed0c0c72f9575ad7db4433641bfcbb745e13b0e00255fd7261 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-e…
+8738e290afd74dcf64fd29ce4ebe6e82e833ea7802f3083480875aa5cab62f02 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-r…
+3a39769fbf062cb5edc34120c4007ce739f9132f2a1837b377cb3f98ead36586 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-r…
+9ceee49e2fda694fc429ad919b82774df2d414c9116ab3dc3650b92c8150deef | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-cli…
+6488337732f4a96c966ae036f3f75e375e48c3a1ae929ca1f90712d3137f52a7 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-cli…
+81cdfde0c8eb536eecf0e38f4c1a89b4df0ea294369d092877de541cbe3740bb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-emb…
+6bf2a9dcc54eb1a74729160840f43e02d9f0cd0438477375b824a06499a08b5f | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-emb…
+0ea3333a97e3e4d4ba3aa3d7fe09e02d4fef6c2587bb54470ba602a5b0486d47 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+e48488a1e029d6b585dd797cfd27ec9c889534f01b1702aa05d3e3ea46ed62f3 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+e4f96cd6c1ff57be26890ca82a243670f2e82f0afb401774f8fe59fcb44200d0 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+4e7bc009cb848b4a4bfdce7fe2f35dea842ec68176b730c802a4379798360375 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+e0050c158cfee4dbc2532e82eab7aebea1d7cd7e34752c9aa27b809c252def2b | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+f27cd652e9e1fd4abbf24c074f1ca7a1d8a09518f48e067eb0e941b8cc9ccae2 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
+e6046e6d0b36cc116fedf4e63cd0f595360a7f05d6ba67672f5e36665b570f55 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
+ccaf4317b1776af25c9a32f69688063f651ee6206c3a7e2edc157e9633aa5bc0 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
+b2b9bc9029d446e2c8cecf709f92196106d11ff7974092880fefdd67ba1b9a49 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
+1efcac305ddab304c2206bb1e511095c11d7e23c0df5374373b1526610188ff3 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
+76c0cac89d5e25bfa789cd988810da3ec6fa832bd839d772618766fdedacbf57 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
+d833b01e8539e580dadb806397bdd20062c3046eea1436d9ae153ae60f00575c | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
+3c6308bd5926e57890d299afc748f22fd77c555b67ac5c692d205ff3c2092112 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+1c716dda4f3e72d42bfe820318b1b71fec6a8b577fee46556a72fe30f5d76d43 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+8d72840984b1b67b4fd766c0f65007a5afff05fc9d236e1458c8e0daeb47266d | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+9905fa198f34978ca200651ea954020075e888d7b8ae33ead6fafb829b37f1cb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+c2b66d368147e75efb42f52326ef1729c26a83637fdf858a6283cdff6f6936f4 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+6b8382834df62e29bf612b2c7b799c64782bf4e65b62346b2e9e6343f3540804 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+8ac3e9907fdaba99a59429fdcd7571e8d31691409671baa2a50dd46e219eeb4c | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+88fb3f422066fb4bdf9b4e88a8369e22816ce8c93dd7409775160414700ee1c2 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
+32010683330a6f31b8d309f10433acaa109b61f2df3d252dae7dade9730074c2 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-com…
+2594a44d33068bab2949750cae0c0ea052fc56faf29f06f35bd57cfa68c6736b | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-com…
+751cf4a51089dc4c60caec5f30125983cd1d3998a4138ae8e66db0d496f73646 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk…
+7e2a57538390cd609e3a9c6f7e085af5a948c663fda4eddc78907125a960ba20 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk…
+c1ca432b7b4e0533deef6fe372387464f47f49260f706728854a508e413b4e66 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk…
+4a633aa686acf4557f64156ae07889708ac59fb6210f970ace10b2a1425a62eb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk…
+ff03e9989faa2d40fa4a9098aaad71e247f27ea4d24b0754da642eb0924bd8c5 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3…
+a7810cf68dd2c8fa79e61a463478880d1df8a5ab9597d151595a9c743b48b90f | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4…
+cc44bf2403bc5d9cbc7515979f5ce15bcff6c01f655f7e4d1db222d26cb575cf | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4…
+4a6939ca9a54604298b67054668bb7a4fc62178a77b87130de667bb1bdfea2d8 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.…
+16976b913d32635398a3f52233c7cae03249a2015e1d12179fd3348a72b0faae | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.…
+d8195162f4479312832be7289cc83bd44b3a79c8ff8702a1c6ca7e5bad782747 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/…
+287998fb67f2b36b49556c7ba9c65203f904f06a2d2553ddc529d17d2bf5b3ff | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/…
+58b3ce8be4521230361fe6679b5930e75730164be1c7b900ddca4218072fee85 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+5cfd02a5e7dd9be15835522035d32eca33be0e63085d27f7c918fa495e34f81f | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+3286bd65e41eae735600c0e9a441cb4a0988d0d76647923b9c978c90b0cb7311 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+9c615416dadd93f0e14895165af8eeee01a1aaaafe02c3eb1f2d2a770b595069 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+c972379b6eeaf36a39e51cdee6fb145b411263baa0c66167fd0073768ceaadf3 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+f8c8b7485d4a575e38e5e94945539d1d4eccd3228a199e1a9aa094e8c26174ee | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+24ffa65bdfb7d893349cb2e78fb3714a490dd0a9c07375744bb136e9804807fd | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+99319ebdd562d9519dfd15f78fe79bc09c3a28875083eea4577d9584359a2f61 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+29038be2ba5cf1acac17fc0d9746e553cf90315b8042366169ff6d800dadf239 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+52614d618c5cb6a8d5d437e95102d1c45565237e09083cd64031ab7b23303a32 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+2e3091a94b8b822c9b68c4dc92ad6a6b0e39e2245b0fc75862de20f5a7a71e9a | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+497a7639820ba0758d4e0c1d6f82fdc8a9b6f6c2a28d91fe03c6b0776db4be40 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.j…
+c7e660c50bf4ecda0fc81ab62b489db9171e207fa784ddcb48c6c85bb40b49f5 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.p…
+95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77 | https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1…
+0a84c20cf71f6a3d21fe226b0d588332fc7ae3e90cb583c60a483317eb9f3644 | https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1…
+f64f2cdd95e608f0c5079dd0df3f184d77eb6f2a6c161fbd2602c46e7aba40c8 | https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.24.5/mockit…
+01ed8f91d51624f38142fed8f1004600cdc06e9b47a5058ee207f2c4ca30cd0f | https://repo.maven.apache.org/maven2/org/mockito/mockito-core/2.24.5/mockit…
+3825feca2a3c176400b063dec7c6b0643e2b5256bbbfd4e0a7c11e0dd0983baa | https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/2.6/obj…
+1493584824e110e22d6047584978ca2fc9907987102369bdb1e3773d54963ada | https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.1/obj…
+4c1307909dc62df1bd91f075503f8bdef5ae445e13353f1752af9448bea1d3f1 | https://repo.maven.apache.org/maven2/org/objenesis/objenesis/2.6/objenesis-…
+cdb3d038c188de6f46ffd5cd930be2d5e5dba59c53b26437995d534e3db2fb80 | https://repo.maven.apache.org/maven2/org/objenesis/objenesis/3.1/objenesis-…
+d46072a46dff7707e06545777486b18d73e052231e3139cd3d9c3f347bc4e6e4 | https://repo.maven.apache.org/maven2/org/objenesis/objenesis/3.1/objenesis-…
+e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.0/asm-analy…
+c6b54477e9d5bae1e7addff2e24cbf92aaff2ff08fd6bc0596c3933c3fadc2cb | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.0/asm-analy…
+be922aae60ff1ff1768e8e6544a38a7f92bd0a6d6b0b9791f94955d1bd453de2 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.2/asm-analy…
+71faa63489b3de4d6251581d2b26e87e0c167c5a08198ca62853fd83644d841f | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-analysis/7.2/asm-analy…
+fed348ef05958e3e846a3ac074a12af5f7936ef3d21ce44a62c4fa08a771927d | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.0/asm-common…
+f4c697886cdb4a5b2472054a0b5e34371e9b48e620be40c3ed48e1f4b6d51eb4 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.0/asm-common…
+0e86b8b179c5fb223d1a880a0ff4960b6978223984b94e62e71135f2d8ea3558 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.2/asm-common…
+190ed352a8c20594b196b20194d06773b91c86b8d36868f937e5dbd0e9c0d78d | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-commons/7.2/asm-common…
+cfd7a0874f9de36a999c127feeadfbfe6e04d4a71ee954d7af3d853f0be48a6c | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/7.0/asm-tree-7.0.…
+d39e7dd12f4ff535a0839d1949c39c7644355a4470220c94b76a5c168c57a068 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/7.0/asm-tree-7.0.…
+c063f5a67fa03cdc9bd79fd1c2ea6816cc4a19473ecdfbd9e9153b408c6f2656 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/7.2/asm-tree-7.2.…
+56765f0a8bd0978214f7ec87a9dafb5825b8191cff554a5adc14c65d1f5b0442 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-tree/7.2/asm-tree-7.2.…
+75fbbca440ef463f41c2b0ab1a80abe67e910ac486da60a7863cbcb5bae7e145 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/7.0/asm-util-7.0.…
+e07bce4bb55d5a06f4c10d912fc9dee8a9b9c04ec549bbb8db4f20db34706f75 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm-util/7.0/asm-util-7.0.…
+b88ef66468b3c978ad0c97fd6e90979e56155b4ac69089ba7a44e9aa7ffe9acf | https://repo.maven.apache.org/maven2/org/ow2/asm/asm/7.0/asm-7.0.jar
+83f65b1083d5ce4f8ba7f9545cfe9ff17824589c9a7cc82c3a4695801e4f5f68 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm/7.0/asm-7.0.pom
+7e6cc9e92eb94d04e39356c6d8144ca058cda961c344a7f62166a405f3206672 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm/7.2/asm-7.2.jar
+e9e529afbd4bc699f6a3380855d27d13017c360fdb68547e06d1c3842d84e262 | https://repo.maven.apache.org/maven2/org/ow2/asm/asm/7.2/asm-7.2.pom
+0f8a1b116e760b8fe6389c51b84e4b07a70fc11082d4f936e453b583dd50b43b | https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5/ow2-1.5.pom
+6e58dad0b8565b95c6fb14b4bfbf570523d1c5290244cfb33822789fa53b1d25 | https://repo.maven.apache.org/maven2/org/python/jython-installer/2.7.1/jyth…
+2a42db37f9a565f1baa833b7cb7e9f901bd9fd750d10b9bd7ca76b2385b22387 | https://repo.maven.apache.org/maven2/org/python/jython-installer/2.7.1/jyth…
+ce679af70c22620b5752aa6c1555d0653198d6370e9a93fe71b8eaaebc5ffaf6 | https://repo.maven.apache.org/maven2/org/robolectric/annotations/4.3.1/anno…
+c0a9d951f7112452291ce0075dd6d4daab6b623d3157c7d02fb503970637b869 | https://repo.maven.apache.org/maven2/org/robolectric/annotations/4.3.1/anno…
+60c85ea7fd652bc4e57567cbd3c41c5d32f2c678e212b713cefa6c63570451ce | https://repo.maven.apache.org/maven2/org/robolectric/junit/4.3.1/junit-4.3.…
+f09205055e2ebd1cfe5fd4834e8136fd4f5d82288a796385a175c338752e453c | https://repo.maven.apache.org/maven2/org/robolectric/junit/4.3.1/junit-4.3.…
+229256a260a1d8e8d33613a3de7ccd639661a7061251c1974975ed427428b468 | https://repo.maven.apache.org/maven2/org/robolectric/pluginapi/4.3.1/plugin…
+6c2c3fcdea6d8f309ede3651a37c5a3ea6708693120a580eb5acadbe2a051a4f | https://repo.maven.apache.org/maven2/org/robolectric/pluginapi/4.3.1/plugin…
+0d6c577fdefe254659ffba5c0564d7e00c69f03e99a4ebb6c150419834cdb703 | https://repo.maven.apache.org/maven2/org/robolectric/plugins-maven-dependen…
+faabd7ab565af30c74ae082222d49ffefbb377861f3cf544c940cc19e2f7018e | https://repo.maven.apache.org/maven2/org/robolectric/plugins-maven-dependen…
+93033237006b51541f8e93d65940f9040367775937d0ce9ac3f4ef72771c51b8 | https://repo.maven.apache.org/maven2/org/robolectric/resources/4.3.1/resour…
+1c60572df06c367dded10cb20ce8c4ec84b8e044d1cfb54696a031150bb111eb | https://repo.maven.apache.org/maven2/org/robolectric/resources/4.3.1/resour…
+3ef4267112ba581ee2a7ad37859bf61571404f07df85b8ad1da054f90eb57a5a | https://repo.maven.apache.org/maven2/org/robolectric/robolectric/4.3.1/robo…
+9a379377599af5e4866749c97b10a18a26bbb58bb0960e266da21865384874d6 | https://repo.maven.apache.org/maven2/org/robolectric/robolectric/4.3.1/robo…
+405f73400d717e083b25af92fa7866a76765dd4e97cf7fd046023d4f05375a9f | https://repo.maven.apache.org/maven2/org/robolectric/sandbox/4.3.1/sandbox-…
+3b3f4b64c5c1b2b25e25777f39b591571acbf88c0b2dc3a1845469528939b346 | https://repo.maven.apache.org/maven2/org/robolectric/sandbox/4.3.1/sandbox-…
+a63d13e7f3816f28ac33eea71a15c7f3f0053ecd01b08cc1e1e119af35ca1197 | https://repo.maven.apache.org/maven2/org/robolectric/shadowapi/4.3.1/shadow…
+16ab0051a6be13f4aa27dbc636dfc4c6aaa214c2163641d96cb5b381494c2e90 | https://repo.maven.apache.org/maven2/org/robolectric/shadowapi/4.3.1/shadow…
+9c69db134cdd79be751856a148020fd9b32b086bb491846eedc0a1106fcadd5e | https://repo.maven.apache.org/maven2/org/robolectric/shadows-framework/4.3.…
+d445923ab7dfbb93d086b070b64f07495b0a1804b9ce1f51815d6034c31f781a | https://repo.maven.apache.org/maven2/org/robolectric/shadows-framework/4.3.…
+9d7bf2557947d44d6f3ed76ec5231e8b72e33eb61c65ac9e149ad307b0eb936c | https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.3.1/…
+a04c2bdefec0b5b492de86365e49537df6d39b04f3823619c94ba2b8937d8670 | https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.3.1/…
+6f9e406cd667019a5450e473c4e2d372bff9c9ab6ef55aafcbc9843109cb1519 | https://repo.maven.apache.org/maven2/org/robolectric/utils/4.3.1/utils-4.3.…
+9ebcfff0b872eaeeae47b2a9f9653c4e40041193a7c16e6a774f73d79aca8b57 | https://repo.maven.apache.org/maven2/org/robolectric/utils/4.3.1/utils-4.3.…
+fbd7b254e02d8aef60c418a5f0e14a783b38a16162caffb2d2a16ccd5d2c09b4 | https://repo.maven.apache.org/maven2/org/slf4j/slf4j-android/1.7.25/slf4j-a…
+bd9b9cb1a3987b1427f7a18babe7f92078e32bbe2e1dca6dced00cc0e3a077a9 | https://repo.maven.apache.org/maven2/org/slf4j/slf4j-android/1.7.25/slf4j-a…
+18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79 | https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1…
+7cd9d7a0b5d93dfd461a148891b43509cf403a9c7f9fb49060d3554df1c81e1e | https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1…
+18f5c52120db036e88d6136f8839c832d074bdda95c756c6f429249d2db54ac6 | https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.7.25/slf4j-pa…
+c513995cf019d9213d4fda666589937b2bf1bea5c4cdd337e6170e80b18406ee | https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/4/oss-pare…
+fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-pare…
+d3f7f09989d5b0ce5c4791818ef937ee7663f1e359c2ef2d312f938aad0763da | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.24/snakeyaml-1.24…
+174d423722256823edbe2af8d7e3385c4645cf72382a22da0485b3b674394f37 | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.24/snakeyaml-1.24…
+34e08ee62116071cbb69c0ed70d15a7a5b208d62798c59f2120bb8929324cb63 | https://repo.maven.apache.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.…
+8f10ffd8df0d3e9819c8cc8402709c6b248bc53a954ef6e45470d9ae3a5735fb | https://repo.maven.apache.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.…
+0341395a481bb887803957145a6a37879853dd625e9244c2ea2509d9bb7531b9 | https://repo.maven.apache.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar
+4e54622f5dc0f8b6c51e28650268f001e3b55d076c8e3a9d9731c050820c0a3d | https://repo.maven.apache.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.pom
1
0
[tor-browser-build/master] Bug 40241: Update components for mozilla87-based Fenix (application-services part)
by sysrqb@torproject.org 16 Mar '21
by sysrqb@torproject.org 16 Mar '21
16 Mar '21
commit 50910998efdc74a10a7ac9beb80206cc4c68f387
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Mar 9 19:35:52 2021 +0100
Bug 40241: Update components for mozilla87-based Fenix (application-services part)
---
projects/application-services/config | 22 +-
.../gradle-dependencies-list.txt | 125 ++---
.../application-services/update-cargo-lock.patch | 146 +++--
.../application-services/viaduct-workaround.patch | 16 +-
.../application-services/viaduct-workaround2.patch | 588 +--------------------
projects/uniffi-rs/config | 8 +-
6 files changed, 164 insertions(+), 741 deletions(-)
diff --git a/projects/application-services/config b/projects/application-services/config
index 11fc5d7..951d5b0 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
-version: 67.2.0
-git_hash: 4cc798c8cd8a1e38ce88e0bb22a05692be63b164
+version: 71.0.0
+git_hash: 1ee6b32f3ee569036fdf1015cf7ffc01ded2860f
git_url: https://github.com/mozilla/application-services
git_submodule: 1
@@ -9,13 +9,11 @@ var:
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 4
+ gradle_dependencies_version: 5
# This should be updated when the list of rust dependencies is changed.
- rust_vendor_version: 3
+ rust_vendor_version: 4
# Switch to make it easier to grab all dependencies during a dry-run.
fetch_gradle_dependencies: 0
- # application-services is still stuck on an older glean_parser version.
- glean_parser: 1.28.6
gradle_version: 6.5
input_files:
@@ -68,12 +66,14 @@ input_files:
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- URL: https://people.torproject.org/~gk/mirrors/sources/glean-parser-[% c('var/glean_parser') %].tar.bz2
- sha256sum: bdbb421fdcc9b66aebe8f41b33e254cab722355c59c0f43f10a8322d7d6da6a4
+ sha256sum: 19dbdd4958022a1a638e0217489ab722fe7d4f588f1978a4ae162f93e75694c2
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- # `cargo vendor vendor` in the `application-services` directory has vendored
- # the sources.
- - URL: https://people.torproject.org/~gk/mirrors/sources/application-services-vend… c('var/rust_vendor_version') %].tar.bz2
- sha256sum: f2d08275920c6e163617d5f102abc0665fd0f74550a400b1970b5b25bcabd3ef
+ # `cargo vendor vendor -s components/external/nimbus-sdk/nimbus/Cargo.toml`
+ # in the `application-services` directory has vendored the sources,
+ # after applying update-cargo-lock.patch, viaduct-workaround.patch and
+ # viaduct-workaround2.patch
+ - URL: https://people.torproject.org/~boklm/mirrors/sources/application-services-v… c('var/rust_vendor_version') %].tar.bz2
+ sha256sum: 500d0fa471c8ad2037c4bbe648e716e77da1ff1fc5678542b144cd257a34abbf
- filename: no-git.patch
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
diff --git a/projects/application-services/gradle-dependencies-list.txt b/projects/application-services/gradle-dependencies-list.txt
index dee28f3..bd001d9 100644
--- a/projects/application-services/gradle-dependencies-list.txt
+++ b/projects/application-services/gradle-dependencies-list.txt
@@ -5,21 +5,21 @@ d1bc9842455c2e534415d88c44df4d52413b478db9093a1ba36324f705f44c3d | https://dl.go
27a4be7462629c312da0b831a0978d2076fc34074145fb61dd4e86d7c8469b82 | https://dl.google.com/dl/android/maven2/androidx/activity/activity/1.0.0/ac…
d38d63edb30f1467818d50aaf05f8a692dea8b31392a049bfa991b159ad5b692 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation/1.1.…
2e9372ba7780ef44952adbf86b66e1f08682c1e5277c926185f6564a13799efe | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation/1.1.…
-19944d32b46551a17c347e21894b95837fbd7baaafc9e2082794344f222f7361 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat-resour…
-046011e16cb01b6f14842565661551110ef1b6427483f5d9068493f4c49690f2 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat-resour…
-8d7299bca44cb3bdf17f5595766acbf459fc81fee223e8686cc6acd3a42ab5c0 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat/1.1.0/…
-340d617121f8ef8e02a6680c8f357aa3e542276d0c8a1cdcb6fd98984b2cb7b9 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat/1.1.0/…
-fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889 | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-common/2.1.…
+c470297c03ff3de1c3d15dacf0be0cae63abc10b52f021dd07ae28daa3100fe5 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat-resour…
+149dd8cec3664bef8ffde86c396ba1e2ab156ea68793d29800d008bacbc9c0f8 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat-resour…
+3d2131a55a61a777322e2126e0018011efa6339e53b44153eb651b16020cca70 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat/1.2.0/…
+8eb3cbe823b609853b481646e3d2c1aa39dbde53dd269712fd844ffdef2ebb42 | https://dl.google.com/dl/android/maven2/androidx/appcompat/appcompat/1.2.0/…
83bbb3960eaabc600ac366c94cb59414e441532a1d6aa9388b0b8bfface5cf01 | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-common/2.1.…
+fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889 | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-common/2.1.…
dd77615bd3dd275afb11b62df25bae46b10b4a117cd37943af45bdcbf8755852 | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-runtime/2.1…
c0c4ed0160cd2ca18390015de8b392b697c173327c6b2c0947d4e62f6958c05d | https://dl.google.com/dl/android/maven2/androidx/arch/core/core-runtime/2.1…
a7913a5275ad68e555d2612ebe8c14c367b153e14ca48a1872a64899020e54ef | https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.0.…
-632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72 | https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.1.…
67e9066ca4acfdc6e3cc508293c31ba0398057ff118e4f70b1e1813c9a3456d1 | https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.1.…
-dcb74d510d552b35eff73b0dd27b829649535f3902e5b5a1f26040383c10a940 | https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.2.0/core-k…
-29eaddba4e6a35e68a128e594ebae3b72ef7e767f1b273ef93dc2ed019ff97f6 | https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.2.0/core-k…
-524b8b88ceb6a74a7e44e6b567a135660f211799904cb218bfee5be1166820b2 | https://dl.google.com/dl/android/maven2/androidx/core/core/1.2.0/core-1.2.0…
-3d1f4e37b77dd92353879a040ab4ce2f706798bcbdf066147491c3642b3f79a6 | https://dl.google.com/dl/android/maven2/androidx/core/core/1.2.0/core-1.2.0…
+632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72 | https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.1.…
+78309600ba6fe4473c045976906649b25b3c9a49b14642f8a8a7dcd9e1afe7c8 | https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.3.2/core-k…
+ba6a806bc1a6faf0cbae08397b3f781feca293ff2b5f3aa600b3d2db142e5ab4 | https://dl.google.com/dl/android/maven2/androidx/core/core-ktx/1.3.2/core-k…
+94de196cd67950cff6ef3e1ac59015f8eaaf61840bdc238f2cf54ddef8dd0be9 | https://dl.google.com/dl/android/maven2/androidx/core/core/1.3.2/core-1.3.2…
+afb5ea494dd083ed404cd51f580d218e37362f8ae326e893bee521290ed34920 | https://dl.google.com/dl/android/maven2/androidx/core/core/1.3.2/core-1.3.2…
a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564 | https://dl.google.com/dl/android/maven2/androidx/cursoradapter/cursoradapte…
62d95c89850af21030b19f14d5f7ecd6d8bcc9a3014c59002ec99624caac8100 | https://dl.google.com/dl/android/maven2/androidx/cursoradapter/cursoradapte…
20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2 | https://dl.google.com/dl/android/maven2/androidx/customview/customview/1.0.…
@@ -53,16 +53,16 @@ ba55fb7ac1b2828d5327cda8acf7085d990b2b4c43ef336caa67686249b8523d | https://dl.go
29aa72e339c3e227e74c973a4c85c7b79c926f0d37b61ed94f4d99a137c9a4b4 | https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-viewmo…
11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025 | https://dl.google.com/dl/android/maven2/androidx/loader/loader/1.0.0/loader…
c978d550808b47434aa49a63164110a50b55b0bcc6160a93a2e37d5110df8c5e | https://dl.google.com/dl/android/maven2/androidx/loader/loader/1.0.0/loader…
-388d33ff503d8c3d010a5dd7ecfe0e44bb19afcc28fd1e6336755d00ef7ad3c6 | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.1.0/roo…
-831d4e3c7e5481e73f37c1cb2e08f24e27306976d3c83916f89b00b28857998b | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.1.0/roo…
-175efd0a722810272098282819ebd52d6d0fa0aa5f9bfb25ac54268e1daa041e | https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.1.0/ro…
-ce8566bc008cc900268c07a4acb8840e4b54cdc404f73081a0986906f205fd7c | https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.1.0/ro…
+fbb37fcf02b35ba7a909fffb52ce4ccb36874f03c1f927f6338b68ef9f1d6b7a | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.2.5/roo…
+2b130dd4a1d3d91b6701ed33096d389f01c4fc1197a7acd6b91724ddc5acfc06 | https://dl.google.com/dl/android/maven2/androidx/room/room-common/2.2.5/roo…
+24a5549b796e43e337513d2908adac67f45350d9a90bca7e2e6120692140bb14 | https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.2.5/ro…
+5d7e35be6728b331c82eed418fee9133d2481ba2c5a12500c182b27545bc4bbb | https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.2.5/ro…
2510a5619c37579c9ce1a04574faaf323cd0ffe2fc4e20fa8f8f01e5bb402e83 | https://dl.google.com/dl/android/maven2/androidx/savedstate/savedstate/1.0.…
844d7d22fcea798c78bf5559229daf88ec9cad8136f5eea0a29aa76b3f8fde7c | https://dl.google.com/dl/android/maven2/androidx/savedstate/savedstate/1.0.…
-870e3bce33ad21ef034332b083b2925105becfd73d262e3a1270901229e45076 | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite-framework/2.…
-c4dedda03bd663e0ff34c8eaaf608ae86be05929a2f7cf2ce1e17160201bca3e | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite-framework/2.…
-cdfceb8f6ec64aac217dc5a499a5edb6d610f9d6a575fba7bea06b2bfaf3ea7f | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite/2.0.1/sqlite…
-bc69fd52e7eb5563a766319b7a84efda32f15473c4cec0e12b99502d91489cb1 | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite/2.0.1/sqlite…
+8673737fdb2efbad91aeaeed1927ebb29212d36a867d93b9639c8069019f8a1e | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite-framework/2.…
+ecd1fa9421e442cec59b4e642a51f8398e8d16bb5fcc92ac6fbb085ecc73685c | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite-framework/2.…
+8341ff092d6060d62a07227f29237155fff36fb16f96c95fbd9a884e375db912 | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite/2.1.0/sqlite…
+a9fe19b196fb25df41719ea6f1bc53f380eaed4bd5e651ec6fd75bcbeeb2a9ee | https://dl.google.com/dl/android/maven2/androidx/sqlite/sqlite/2.1.0/sqlite…
76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8 | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
276a20116b705fb75b9003ee9496c56f6fd3b32375fb232472811eba60a040bd | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26 | https://dl.google.com/dl/android/maven2/androidx/vectordrawable/vectordrawa…
@@ -71,10 +71,10 @@ bc69fd52e7eb5563a766319b7a84efda32f15473c4cec0e12b99502d91489cb1 | https://dl.go
c729c7be0cc06323bda829d460666e79dbd43b799a21089a44bd3b293dc253b5 | https://dl.google.com/dl/android/maven2/androidx/versionedparcelable/versio…
147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682 | https://dl.google.com/dl/android/maven2/androidx/viewpager/viewpager/1.0.0/…
1f72f836339d03c6eb013f65075e76ca87075a577578eb4f95f74a3a5d253128 | https://dl.google.com/dl/android/maven2/androidx/viewpager/viewpager/1.0.0/…
-e93836f35d35e47ba501add90fa6559964fa7a70975bf4ffc4a04836189611e9 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.2.…
-7cbb32f2fe880d407d4c53268bcd554c11dc9316a1d6cd556a08fe45a4631f22 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.2.…
-de617480ce64e4e9055e2d0295c87ee20929b06c4f2a5efdaded27dcca8520e4 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.2.0/wo…
-960a24728eaedfc4ff7a2f366b9360e02a1d88f9eb0a9c7142ed94ed462797b0 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.2.0/wo…
+290d2e9c1a22388b3f0c3dbc204a6176f8c49174126de884820befa83899f129 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.4.…
+3eb66e171b40c9cd2a9b9d9cd61a62d90e4a515491619a8d0a95e98866624b97 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime-ktx/2.4.…
+7801441cb973fb007ef311d3db35c3b3c9d011cef890357e7ca33890833354e5 | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.4.0/wo…
+0ed72c9c5a7be5b0004f226a42fa519093d49985c3eaa1a15b1563f94e9eddda | https://dl.google.com/dl/android/maven2/androidx/work/work-runtime/2.4.0/wo…
d2ff1905ff7e7cbed7ecce20408a76b69a52d52fdf655b696ba49007c61a0e11 | https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary…
ec6fe50839c05802cc262ec5611e160d17dff69c5a634bb322b27341f9176e9d | https://dl.google.com/dl/android/maven2/com/android/databinding/baseLibrary…
9a29bf34909bca58b85cacda7d1f09cebe8079e56722911395f1ad6a0b377b94 | https://dl.google.com/dl/android/maven2/com/android/signflinger/4.0.1/signf…
@@ -179,9 +179,9 @@ f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04 | https://jcent
317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696 | https://jcenter.bintray.com/com/google/guava/guava-parent/27.0.1-jre/guava-…
f31a5846bd9e14a4c374da1b9b146a5715ecdca925e071e1d2bf4da2daaded90 | https://jcenter.bintray.com/com/google/guava/guava-parent/28.1-jre/guava-pa…
6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36 | https://jcenter.bintray.com/com/google/guava/guava/27.0.1-jre/guava-27.0.1-…
-e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069 | https://jcenter.bintray.com/com/google/guava/listenablefuture/1.0/listenabl…
30beb8b8527bd07c6e747e77f1a92122c2f29d57ce347461a4a55eb26e382da4 | https://jcenter.bintray.com/com/google/guava/guava/28.1-jre/guava-28.1-jre.…
74af0e8dd935894ce9bcb8e2842dd0001581b84cb6a7751c3ef9314011399ba4 | https://jcenter.bintray.com/com/google/guava/guava/28.1-jre/guava-28.1-jre.…
+e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069 | https://jcenter.bintray.com/com/google/guava/listenablefuture/1.0/listenabl…
53873caf26bc1ed8a567ea6c939ab2aaa3f47a5e32d5cade95ddf5080d23238a | https://jcenter.bintray.com/com/google/guava/listenablefuture/1.0/listenabl…
b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99 | https://jcenter.bintray.com/com/google/guava/listenablefuture/9999.0-empty-…
18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b | https://jcenter.bintray.com/com/google/guava/listenablefuture/9999.0-empty-…
@@ -192,8 +192,8 @@ c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd | https://jcent
efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44 | https://jcenter.bintray.com/com/google/jimfs/jimfs/1.1/jimfs-1.1.pom
32ff2307dafc658d0b55b2ad841d625aea5606bb9b0316605165cd6980503243 | https://jcenter.bintray.com/com/google/protobuf/protobuf-bom/3.10.0/protobu…
74ee43b09e711b13d568811e12f33bd16e6087b15f1aeded22b0dfe89ae76856 | https://jcenter.bintray.com/com/google/protobuf/protobuf-bom/3.11.4/protobu…
-433ae1f99ae3c330f1b54971b39c2672d49948e6acf661d9bb4f1e9a7743de8e | https://jcenter.bintray.com/com/google/protobuf/protobuf-gradle-plugin/0.8.…
-d9fdbf20ea7e2b965a8870d17ebbd2900a64cef3c9a7c2bf0bd4d4857462680a | https://jcenter.bintray.com/com/google/protobuf/protobuf-gradle-plugin/0.8.…
+dadf381e55dd54a4e4d2b4070221dc596caff215c061f2c9f0c212966fea134e | https://jcenter.bintray.com/com/google/protobuf/protobuf-gradle-plugin/0.8.…
+13811bcb4057c7785afd5451362f37d36c1d7bb7842135255b600e7b6d55315e | https://jcenter.bintray.com/com/google/protobuf/protobuf-gradle-plugin/0.8.…
619b0b0dc344cb141e493cbedc5687c8fb7c985e609a1b035e621bfab2f89021 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.10.0/p…
146660182d07798ced06fa8e8ae3b9faa90aa48cf3c6adfc67db9371188ba502 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.10.0/p…
161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9 | https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.10.0/protob…
@@ -219,7 +219,7 @@ f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e | https://jcent
6d704e450a816a45bce806ba22c22fe83d8e8dcf7a71517603de630a1726809f | https://jcenter.bintray.com/com/sun/istack/istack-commons-runtime/3.0.7/ist…
6f83d3c85fdca9ef24010cb2f652aab1a508bff6331c087b60d0301782b78c6f | https://jcenter.bintray.com/com/sun/istack/istack-commons/3.0.7/istack-comm…
c2204f54b43593808c9af6502865ee71679823156dabdef341e71d35662c7aa0 | https://jcenter.bintray.com/com/sun/xml/bind/jaxb-bom-ext/2.3.1/jaxb-bom-ex…
-8b7d9154594e5b0e2bf1d9de6d2ac8dc7ae84179dfeb571299ce343292e9ed12 | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-par…
+f699ef37ec7966e284742dfca83075221179041a9a49aef7991280192604462d | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-par…
b56383eb4d43498b145d379e2a93d5fcdcd8ff9291f89b58b82cb91658dbf14c | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.3.1/…
7a8473e935504841c606686d84e9c017a739ac2c144fde687aa003a7dd44de7f | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-txw-parent/2.3.1/jaxb…
785861db11ca1bd0d1956682b974ad73eb19cd3e01a4b3fa82d62eca97210aec | https://jcenter.bintray.com/com/sun/xml/fastinfoset/FastInfoset/1.2.15/Fast…
@@ -254,8 +254,8 @@ cd1beaa4560dc4dfdb826b9d809e464db22526dfb54264bae78a6ff7efb08e1f | https://jcent
2b9f3497218b32c399d1ecbea0b00d4f4553edcf669919ed1e1a87daa77acf87 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.aar
5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar
5fe81b0255978f24616d37b10608b79498a5f3073e1d9b2038d8736a831f2608 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
-5b936f6757872c1b901cb821001652eda746e3b6cffef9c434443534a96bfc9a | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
-3bc67852756cc2d3e04d8636f3af7d142464ff5bb43c2eda9c32b085be56ac19 | https://jcenter.bintray.com/net/java/jvnet-parent/5/jvnet-parent-5.pom
+281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
+1af699f8d9ddab67f9a0d202fbd7915eb0362a5a6dfd5ffc54cafa3465c9cb0a | https://jcenter.bintray.com/net/java/jvnet-parent/5/jvnet-parent-5.pom
26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
@@ -263,7 +263,7 @@ f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcent
75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
-dab8d3d71fecb6edb4cc62fcfdd969744975a773b18e09581c63e9a9929dbb3f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
+5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57 | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0 | https://jcenter.bintray.com/net/sf/proguard/proguard-parent/6.0.3/proguard-…
401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.3/antlr4-master-4.5…
a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4 | https://jcenter.bintray.com/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar
@@ -285,7 +285,7 @@ c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7 | https://jcent
7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.5.6/http…
b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client…
61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-core/4…
-3b9ff4e8f7788fbbb3e0011b8a9098e8acf6815709c913aa3d027dfa3a799b3f | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-parent…
+caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-parent…
78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.5.6/httpmi…
@@ -315,8 +315,9 @@ affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://jcent
310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
303c422700f79d5d13d528b978c6abd9cd136d78d9f7f6f2556e85a81892f9f1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
648025c01c56b234a7458cb6048ae8fcfa941f9ea8ebf059090733237b9df9b6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
-4c801ff4f5151778762ce2d57080f0cb10a4a94cb76ad24593cca35bff36da48 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
f120750af0c9e0c6024c3c76469fd4638ef898fc5bc2d4c49f2fe17568f47b9e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
+baec7911227eec34845439c38876a2dd18eda7c15ac523655411e20e8f053138 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
+ec86adcccbb839d099b8649c5277a6fbe41d2c04b61b4b296584e7af52ae4ad1 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions-…
ffd156464b8129365423e27b9e53ecbfd32d56b91af977dab2222ca2d271a65f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
eb68121782d951a1db37e9a00c8fd9252eafa91388e90987239d75224490d6bb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-android-extensions/…
2e508e8d23e9ab171f53ae3f71e8218e7242cd138af040d62651ecd9d3417bcd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processi…
@@ -357,18 +358,18 @@ e67e0eaf0d532e4d312947ac4cf02135ea44aee646b32273707dc0c4646a3662 | https://jcent
93f5cb50148dee7da746ed487e6278ee8d94da9a99b670f9f5248456c2f66341 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-4681f2d436a68c7523595d84ed5758e1382f9da0f67c91e6a848690d711274fe | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.1…
-63480e72a7d4de742b49a6ff90e45f544ca37f3fe11af8b4839f9cd747515d00 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.1…
+812cf197d9c4c67e1f47f95e2d72a9b600f0d1124560617bfe9850773eccbcff | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.2…
+cd840ab880f838af0eb76e25930392c6bf0aa2a2adb5e2d4b0bb9f717a295ebd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.2…
b046a5ef54c7006db852e48e547aaff525a9e7a0a5909ffe5fe2c966c1a3a72e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/…
7163f88887d050f76f86ad2304f84a9d79c39a96178bf02e4524bdeacc5bb149 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/…
40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-f9566380c08722c780ce33ceee23e98ddf765ca98fabd3e2fabae7975c8d232b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/…
-78f2fe1d48e99c64958930ccdc43fce5939460ecdfc65f302823a021d63c520d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.10/…
+50de5f7dad6235064ac6c0ff577f095a91b3306c2547d8bc372291587495024a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.21/…
+3b54ad496e7a7f7ad8ad6e846e5c061911242ef474e030ff602beef7565943d6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.21/…
133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-39b7a9442d7a3865e0f4a732c56c1d5da0e11ffb3bb82a461d32deb0c0ca7673 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/…
-c2f4d70082dbbfcea68fdfa74289cef32df9e4b5ddf359f006036dff1c5b06d6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/…
+8ec3db1516948b2d3524e3afbe75cb5ac59e02d98cb6ef586ef57ba63ca8d11f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.21/…
+5bd2b4922398bd94d1d94e2dca0401089092b453e724a9e746daacacead735b7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.21/…
ab355888358a25478591aafe2cab2dd0b2e44af323a0acc3fd03581b24712430 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.41/…
a5e970ffd412599c8159068e670356509193e3238dddf20273ed6a8fb7b09de2 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jre7/1.2.41/…
1b8355ce90079352de296f3f0b175473e7cbbde34d7338b92e4a80c633baab96 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jre8/1.2.41/…
@@ -377,19 +378,19 @@ f6837401cbd13a8a31f126a9e22430ab9861602d91a4c310a47805453690f76d | https://jcent
ff03e9989faa2d40fa4a9098aaad71e247f27ea4d24b0754da642eb0924bd8c5 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotli…
3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-01ecb09782c042b931c1839acf21a188340b295d05400afd6e3415d4475b8daa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotli…
-a4b9cfbb4bbda523af1e24d52c775fb9c0f7cb568e48b065d45aeb56e63c2762 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.10/kotli…
+f78c5d8c09db985912ab83a1de3c3b53ddf208d7b151f06a72358ea3e137d01b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotli…
+076c5a29b7a79ba2050b52e12307783d6b18d7701ce5245a3f48d005c51ae2be | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.4.21/kotli…
71cdc094af3463af5773122941819ce11951e8550c499938bb79a04b3d5ee842 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.71/kotl…
ab2b2bd3304dcd40562a2930c53002b1e2d80fb21d0d9cc7d6448a83b9ae6b0b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.71/kotl…
51f7f966cd071ff412df49849bdd0a6a651f800c8816defaa29fcd106eedcdac | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-klib/1.3.71/ko…
fae43f08052e63bf49cbcda0ade70c05381c4093521e20f31dd564947c1b7105 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-klib/1.3.71/ko…
-3b6529d1872a2c689b2231cf3e75476badd5c5a430206c2c1967e4deb171e50d | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
-504b6599eb3a3b4d8b4db267d1628e79f3e58f17fc4f6d44c24cda530b0edf39 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
-64c6d2b53e52eb65e26c6b828d848d8ceab30473c3511bbd1c116cf9799bc127 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
+5cfd02a5e7dd9be15835522035d32eca33be0e63085d27f7c918fa495e34f81f | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
+58b3ce8be4521230361fe6679b5930e75730164be1c7b900ddca4218072fee85 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-androi…
+3286bd65e41eae735600c0e9a441cb4a0988d0d76647923b9c978c90b0cb7311 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-j…
7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-6538f458473a42b6e2a92676f00d70d4fa0f6ae824d13c1e31c8051c196d2335 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-51be6791ac5aed9718a58b297c8c9081c9b704dfd72a849c4754a40da55ee236 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
+99319ebdd562d9519dfd15f78fe79bc09c3a28875083eea4577d9584359a2f61 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
+4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
5c415a9d8585200de4be1947e15291cc79f599b06249375f5c9ea22d4b2d090f | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8 | https://jcenter.bintray.com/org/json/json/20180813/json-20180813.jar
@@ -411,24 +412,24 @@ b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://jcent
fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
13009fb5ede3cf2be5a8d0f1602155aeaa0ce5ef5f9366892bd258d8d3d4d2b1 | https://jcenter.bintray.com/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar
1e1beb22ca906209700122b5cacf6f2719324538c5b1e3c27bf91564c8d31dbd | https://jcenter.bintray.com/org/yaml/snakeyaml/1.23/snakeyaml-1.23.pom
-e00994073f2c041891e511707ce991a7671b335f8863099719eb749897c231b9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/63.0.0…
-f16249682aa48169d0508bd5310778241f856df91b57201a99ad78d0b4741f34 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/63.0.0…
-be10c6c12568bfb4ce987756c6bfcf60ce01085a2dab185e0aef8092cd5c779c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/63.0.…
-ea6cb3d94121d03fefd5329072c7b01d891b8bb25c2c303b28dfd6728eeaa72f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/63.0.…
-377092988061736b0a6e8ddfd243fb9766598724abe0153767310ad2b0be86f5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/63.0.…
-45ea21040eadcdce28620267916dc6fd7c252ec54bed1bbefb8f5b6b456e6a5c | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/63.0.…
-6215b79ff57a56a1ec3f1937ce9870614f96b5afc3e54837d48239b74a28c185 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/63.0.0…
-6a80782f831863c5c592cf2851cbec06f0661a868bca960512b0cc920711bddb | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/63.0.0…
-9eadd1526848b5669c6e00bfc4283eb63c2d2c1179db5c1329cca2a2e227003a | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/63.0.0/…
-ca3c96c281e314f07170bbfa766693ef0d2e4d865433a9622254088ee7e68363 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/63.0.0/…
-93fd44998bfeeab9d7137cb34a50d510876ec8362e988b8a4ddf4e1629a69e71 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/63.0.…
-b3836516ae7c9f1ca38ce636e24e3d10b2b421d94e344f14033daa5f20df3168 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/63.0.…
-c844c630c520e7ca53db9282380242248fe5c11d9ab6b941ddded5bb51296721 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-a8cc4657e66af457b8f8ef675ff59b0a1dbfe71466fc93271b6867bc270a7712 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-5eb5d86577ecf64ba66df368c07dde772d1e82da63f25d73e63118d261ca7a7c | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-d1a407ad60d86df547ca4521ed5355e609bbe09f22ef658c89cade0780468994 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-a1925b30aed9675e339205797eebd0598885cc987fc61890e81f4a2c12dcf6b6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.0.4/glean-3…
-477ee8ea2f4bbcf2860553987f3e5fddaac7cfd6bcae7c1bef7a7b29cdc5d9d8 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.0.4/glean-3…
+e5801430997ccd358df0b4b48f101402b924a72de87cc5f12d80a32bb6d61865 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/71.0.0…
+5d08cc1bb3c2432ab3ecaaa6c06ca0603a9957ece9524643b9db4fb77a01f7b8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/71.0.0…
+bfbb680afd838af36e4609d1b7236dbef93f47e92b386bb7ca08efca910e2e59 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/71.0.…
+c65c694e7579c0531eb09f569c97121793c11895e66fe8b206d1e9941b5ea9c8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/71.0.…
+d5b2a0cf4022b8287b0e515909262c3969fde476d3df71fcc165b4b76de0fdf1 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/71.0.…
+b7e1a47fc0a4819023b0356c11b929e22caf101c62318981882a04ecea22d859 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/71.0.…
+fe504319fc0bc08ca00d8b951bf5d5f6fa4a5fc467e28b609cd34e8c59c20ad9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/71.0.0…
+d1741144ed2ea215a84f5d94d779cafcfaf778cce8cc7224437a2884cb1101bc | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/71.0.0…
+755cd9e2c9d550b7d13e32b2d0fc3838021967405cf6b7bf30c58577fec5827a | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/71.0.0/…
+7b0a3bd6d32c8002f785db8fdbf3b08e3541366e784cac1304cb3f49642b916a | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/71.0.0/…
+f7bf27270904abd8639b543151b6eaf268b821b8e6235c8decf8031e02ec8648 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
+0b80acf7d1dd0d9484b0e82cd1a04ae57270d7f7e6b339ce39424554d48798e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
+6f26ffb388a1d23809b99e9c84c0be54e27a90dcc14abcc779b0216bc6356946 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+a073c6239b797829a580265497d770eabfec2c40cc4d361f72a01c0a0987326a | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+ccd3a75eb0e0f8ce5882d9d3a3154e3d3c40ce9c44f6c506ad4e28df84bab751 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+a09eccf8b4fbb071e1acf3ea3ce1d30017250ee9c35424a0f98659526ff19597 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+a1db8db94979392030d8a5eb1c5d7eccc8383adbf031575d746c68a92e9b0d20 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.1.2/glean-3…
+d6394ad35c63daca22246363ff826749deb62d514a1843eea27d8f39dfb778e6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.1.2/glean-3…
470564ff0a452da1c96be4ca3a9cdeceaa2912537ee2a8def486f3b383d43f15 | https://plugins.gradle.org/m2/com/jetbrains/python/envs/com.jetbrains.pytho…
6438812f927b505a4c4ef2703b45433a1b99e45334526bfed25e71e1a79abb14 | https://plugins.gradle.org/m2/gradle/plugin/com/jetbrains/python/gradle-pyt…
317aa4c467a37d5fcab6657c326a4069ea8e8c6dda951ec2091ffb95c596a2a3 | https://plugins.gradle.org/m2/gradle/plugin/com/jetbrains/python/gradle-pyt…
diff --git a/projects/application-services/update-cargo-lock.patch b/projects/application-services/update-cargo-lock.patch
index 283a3a2..5e28cca 100644
--- a/projects/application-services/update-cargo-lock.patch
+++ b/projects/application-services/update-cargo-lock.patch
@@ -1,11 +1,14 @@
-From 214a01a43691302b52c2fd8c39c26ef66d4c00b8 Mon Sep 17 00:00:00 2001
+From cdcce5ffd9e49d4648dd6b23a6dfbc8011352883 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Fri, 27 Nov 2020 09:55:49 +0000
Subject: [PATCH] update cargo.lock
+---
+ Cargo.lock | 390 +++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 273 insertions(+), 117 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
-index 21244f27..a28c22d7 100644
+index 813c475c..20b6e4d0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -86,9 +86,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
@@ -52,7 +55,7 @@ index 21244f27..a28c22d7 100644
"proc-macro2",
"quote",
"serde",
-@@ -186,9 +185,9 @@ dependencies = [
+@@ -191,9 +190,9 @@ dependencies = [
[[package]]
name = "backtrace"
@@ -64,7 +67,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"addr2line",
"cfg-if 1.0.0",
-@@ -210,6 +209,12 @@ version = "0.12.3"
+@@ -215,6 +214,12 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
@@ -77,7 +80,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "bincode"
version = "1.3.1"
-@@ -232,6 +237,18 @@ version = "1.2.1"
+@@ -237,6 +242,18 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
@@ -96,7 +99,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "blake2b_simd"
version = "0.5.11"
-@@ -320,9 +337,9 @@ dependencies = [
+@@ -325,9 +342,9 @@ dependencies = [
[[package]]
name = "cc"
@@ -108,7 +111,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "cfg-if"
-@@ -437,11 +454,21 @@ dependencies = [
+@@ -442,11 +459,21 @@ dependencies = [
"winapi-util",
]
@@ -132,7 +135,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"const-random-macro",
"proc-macro-hack",
-@@ -449,12 +476,14 @@ dependencies = [
+@@ -454,12 +481,14 @@ dependencies = [
[[package]]
name = "const-random-macro"
@@ -149,7 +152,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -471,9 +500,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+@@ -476,9 +505,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "core-foundation"
@@ -161,7 +164,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"core-foundation-sys",
"libc",
-@@ -481,9 +510,9 @@ dependencies = [
+@@ -486,9 +515,9 @@ dependencies = [
[[package]]
name = "core-foundation-sys"
@@ -173,7 +176,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "cpuid-bool"
-@@ -543,7 +572,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -548,7 +577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
dependencies = [
"cfg-if 1.0.0",
@@ -182,7 +185,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -554,18 +583,18 @@ checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+@@ -559,18 +588,18 @@ checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-epoch",
@@ -205,7 +208,7 @@ index 21244f27..a28c22d7 100644
"lazy_static",
"memoffset",
"scopeguard",
-@@ -573,26 +602,20 @@ dependencies = [
+@@ -578,26 +607,20 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
@@ -238,7 +241,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "csv"
-@@ -738,7 +761,7 @@ version = "1.2.1"
+@@ -743,7 +766,7 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d97f19730c1eb3332d0657d0f3ca72795d77c61d8eb26bdd7f15edc0c61eb2"
dependencies = [
@@ -247,7 +250,7 @@ index 21244f27..a28c22d7 100644
"byteorder",
"once_cell",
"serde",
-@@ -1034,6 +1057,16 @@ version = "0.1.1"
+@@ -1039,6 +1062,16 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
@@ -264,7 +267,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
-@@ -1056,53 +1089,59 @@ version = "0.3.3"
+@@ -1061,53 +1094,59 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
@@ -337,7 +340,7 @@ index 21244f27..a28c22d7 100644
"pin-utils",
"slab",
]
-@@ -1112,7 +1151,7 @@ name = "fxa-client"
+@@ -1117,7 +1156,7 @@ name = "fxa-client"
version = "0.1.0"
dependencies = [
"anyhow",
@@ -346,7 +349,7 @@ index 21244f27..a28c22d7 100644
"error-support",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hex",
-@@ -1272,7 +1311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1278,7 +1317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7539c8d8699bae53238aacd3f93cfb0bcaef77b85dc963902b9367c5d7a84c48"
dependencies = [
"anyhow",
@@ -355,7 +358,7 @@ index 21244f27..a28c22d7 100644
"log 0.4.11",
"once_cell",
"thiserror",
-@@ -1361,7 +1400,7 @@ dependencies = [
+@@ -1367,7 +1406,7 @@ dependencies = [
"httparse",
"httpdate",
"itoa",
@@ -364,7 +367,7 @@ index 21244f27..a28c22d7 100644
"socket2",
"tokio",
"tower-service",
-@@ -1488,7 +1527,7 @@ dependencies = [
+@@ -1494,7 +1533,7 @@ dependencies = [
name = "jwcrypto"
version = "0.1.0"
dependencies = [
@@ -373,7 +376,7 @@ index 21244f27..a28c22d7 100644
"rc_crypto",
"serde",
"serde_derive",
-@@ -1521,6 +1560,19 @@ version = "1.4.0"
+@@ -1527,6 +1566,19 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
@@ -392,8 +395,8 @@ index 21244f27..a28c22d7 100644
+
[[package]]
name = "libc"
- version = "0.2.80"
-@@ -1673,9 +1725,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+ version = "0.2.84"
+@@ -1680,9 +1732,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
[[package]]
name = "memoffset"
@@ -405,7 +408,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"autocfg 1.0.1",
]
-@@ -1777,7 +1829,7 @@ dependencies = [
+@@ -1784,7 +1836,7 @@ dependencies = [
"rand 0.7.3",
"regex",
"serde_json",
@@ -414,7 +417,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -1800,9 +1852,9 @@ checksum = "ba896fb4d7fe86433ebaf18c532bd9202e54c450a1bf7723855220e0e76d71d1"
+@@ -1807,9 +1859,9 @@ checksum = "ba896fb4d7fe86433ebaf18c532bd9202e54c450a1bf7723855220e0e76d71d1"
[[package]]
name = "native-tls"
@@ -426,7 +429,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"lazy_static",
"libc",
-@@ -1877,11 +1929,23 @@ dependencies = [
+@@ -1884,11 +1936,23 @@ dependencies = [
"version_check",
]
@@ -451,15 +454,7 @@ index 21244f27..a28c22d7 100644
"error-support",
"nss_sys",
"serde",
-@@ -1973,15 +2037,15 @@ checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
-
- [[package]]
- name = "once_cell"
--version = "1.4.1"
-+version = "1.5.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
-+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+@@ -1986,9 +2050,9 @@ checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
[[package]]
name = "oorandom"
@@ -471,7 +466,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "opaque-debug"
-@@ -2073,9 +2137,9 @@ dependencies = [
+@@ -2080,9 +2144,9 @@ dependencies = [
[[package]]
name = "paste"
@@ -483,7 +478,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "paste-impl"
-@@ -2113,11 +2177,11 @@ dependencies = [
+@@ -2120,11 +2184,11 @@ dependencies = [
[[package]]
name = "pin-project"
@@ -498,7 +493,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -2133,9 +2197,9 @@ dependencies = [
+@@ -2140,9 +2204,9 @@ dependencies = [
[[package]]
name = "pin-project-internal"
@@ -510,7 +505,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"proc-macro2",
"quote",
-@@ -2148,6 +2212,12 @@ version = "0.1.11"
+@@ -2155,6 +2219,12 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
@@ -523,7 +518,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "pin-utils"
version = "0.1.0"
-@@ -2391,7 +2461,7 @@ dependencies = [
+@@ -2398,7 +2468,7 @@ dependencies = [
name = "push"
version = "0.1.0"
dependencies = [
@@ -532,7 +527,7 @@ index 21244f27..a28c22d7 100644
"bincode",
"error-support",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -2417,7 +2487,7 @@ dependencies = [
+@@ -2424,7 +2494,7 @@ dependencies = [
name = "push-ffi"
version = "0.1.0"
dependencies = [
@@ -541,7 +536,7 @@ index 21244f27..a28c22d7 100644
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static",
"log 0.4.11",
-@@ -2443,6 +2513,12 @@ dependencies = [
+@@ -2450,6 +2520,12 @@ dependencies = [
"proc-macro2",
]
@@ -554,7 +549,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "rand"
version = "0.4.6"
-@@ -2636,7 +2712,7 @@ checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
+@@ -2643,7 +2719,7 @@ checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
@@ -563,7 +558,7 @@ index 21244f27..a28c22d7 100644
"lazy_static",
"num_cpus",
]
-@@ -2645,7 +2721,7 @@ dependencies = [
+@@ -2652,7 +2728,7 @@ dependencies = [
name = "rc_crypto"
version = "0.1.0"
dependencies = [
@@ -572,7 +567,7 @@ index 21244f27..a28c22d7 100644
"ece",
"error-support",
"hawk",
-@@ -2737,11 +2813,11 @@ dependencies = [
+@@ -2744,11 +2820,11 @@ dependencies = [
[[package]]
name = "reqwest"
@@ -587,7 +582,7 @@ index 21244f27..a28c22d7 100644
"bytes",
"encoding_rs",
"futures-core",
-@@ -2758,14 +2834,15 @@ dependencies = [
+@@ -2765,14 +2841,15 @@ dependencies = [
"mime_guess",
"native-tls",
"percent-encoding",
@@ -605,7 +600,7 @@ index 21244f27..a28c22d7 100644
"web-sys",
"winreg",
]
-@@ -2822,14 +2899,14 @@ dependencies = [
+@@ -2852,14 +2929,14 @@ dependencies = [
[[package]]
name = "rust-argon2"
@@ -624,7 +619,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -2872,6 +2949,12 @@ dependencies = [
+@@ -2902,6 +2979,12 @@ dependencies = [
"winapi 0.3.9",
]
@@ -637,7 +632,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "scopeguard"
version = "1.1.0"
-@@ -2880,9 +2963,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+@@ -2910,9 +2993,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "security-framework"
@@ -649,7 +644,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"bitflags 1.2.1",
"core-foundation",
-@@ -2893,9 +2976,9 @@ dependencies = [
+@@ -2923,9 +3006,9 @@ dependencies = [
[[package]]
name = "security-framework-sys"
@@ -661,7 +656,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"core-foundation-sys",
"libc",
-@@ -2988,6 +3071,18 @@ dependencies = [
+@@ -3018,6 +3101,18 @@ dependencies = [
"url",
]
@@ -680,15 +675,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "sha2"
version = "0.9.2"
-@@ -3015,17 +3110,17 @@ checksum = "797a4eaffb90d896f29698d45676f9f940a71936d7574996a7df54593ba209fa"
-
- [[package]]
- name = "smallvec"
--version = "1.4.2"
-+version = "1.5.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
-+checksum = "7acad6f34eb9e8a259d3283d1e8c1d34d7415943d4895f65cc73813c7396fc85"
+@@ -3051,11 +3146,11 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "socket2"
@@ -703,7 +690,7 @@ index 21244f27..a28c22d7 100644
"libc",
"redox_syscall",
"winapi 0.3.9",
-@@ -3042,6 +3137,12 @@ dependencies = [
+@@ -3072,6 +3167,12 @@ dependencies = [
"rusqlite",
]
@@ -716,7 +703,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "strsim"
version = "0.8.0"
-@@ -3074,9 +3175,9 @@ dependencies = [
+@@ -3104,9 +3205,9 @@ dependencies = [
[[package]]
name = "syn"
@@ -728,7 +715,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"proc-macro2",
"quote",
-@@ -3087,7 +3188,7 @@ dependencies = [
+@@ -3117,7 +3218,7 @@ dependencies = [
name = "sync-guid"
version = "0.1.0"
dependencies = [
@@ -737,7 +724,7 @@ index 21244f27..a28c22d7 100644
"rand 0.7.3",
"rusqlite",
"serde",
-@@ -3099,7 +3200,7 @@ name = "sync-test"
+@@ -3129,7 +3230,7 @@ name = "sync-test"
version = "0.1.0"
dependencies = [
"anyhow",
@@ -746,7 +733,7 @@ index 21244f27..a28c22d7 100644
"env_logger",
"fxa-client",
"interrupt-support",
-@@ -3127,7 +3228,7 @@ version = "0.1.0"
+@@ -3157,7 +3258,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"base16",
@@ -755,7 +742,7 @@ index 21244f27..a28c22d7 100644
"env_logger",
"error-support",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -3294,6 +3395,12 @@ dependencies = [
+@@ -3324,6 +3425,12 @@ dependencies = [
"viaduct",
]
@@ -768,7 +755,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "tempdir"
version = "0.3.7"
-@@ -3341,18 +3448,18 @@ dependencies = [
+@@ -3371,18 +3478,18 @@ dependencies = [
[[package]]
name = "termcolor"
@@ -791,7 +778,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"libc",
"winapi 0.3.9",
-@@ -3428,6 +3535,15 @@ dependencies = [
+@@ -3458,6 +3565,15 @@ dependencies = [
"winapi 0.3.9",
]
@@ -807,7 +794,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "tinytemplate"
version = "1.1.0"
-@@ -3440,15 +3556,24 @@ dependencies = [
+@@ -3470,15 +3586,24 @@ dependencies = [
[[package]]
name = "tinyvec"
@@ -836,7 +823,7 @@ index 21244f27..a28c22d7 100644
dependencies = [
"bytes",
"fnv",
-@@ -3458,7 +3583,7 @@ dependencies = [
+@@ -3488,7 +3613,7 @@ dependencies = [
"memchr",
"mio",
"num_cpus",
@@ -845,7 +832,7 @@ index 21244f27..a28c22d7 100644
"slab",
]
-@@ -3482,7 +3607,7 @@ dependencies = [
+@@ -3512,7 +3637,7 @@ dependencies = [
"futures-core",
"futures-sink",
"log 0.4.11",
@@ -854,7 +841,7 @@ index 21244f27..a28c22d7 100644
"tokio",
]
-@@ -3503,13 +3628,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
+@@ -3533,13 +3658,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
[[package]]
name = "tracing"
@@ -872,7 +859,7 @@ index 21244f27..a28c22d7 100644
"tracing-core",
]
-@@ -3574,18 +3699,18 @@ dependencies = [
+@@ -3604,18 +3729,18 @@ dependencies = [
[[package]]
name = "unicode-normalization"
@@ -895,7 +882,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "unicode-width"
-@@ -3617,7 +3742,7 @@ dependencies = [
+@@ -3647,7 +3772,7 @@ dependencies = [
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static",
"log 0.4.11",
@@ -904,7 +891,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -3648,10 +3773,11 @@ dependencies = [
+@@ -3678,10 +3803,11 @@ dependencies = [
[[package]]
name = "url"
@@ -918,7 +905,7 @@ index 21244f27..a28c22d7 100644
"idna",
"matches",
"percent-encoding",
-@@ -3813,6 +3939,30 @@ version = "0.2.68"
+@@ -3843,6 +3969,30 @@ version = "0.2.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
@@ -949,7 +936,7 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "web-sys"
version = "0.3.45"
-@@ -3876,7 +4026,7 @@ version = "0.11.0"
+@@ -3906,7 +4056,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
dependencies = [
@@ -958,7 +945,7 @@ index 21244f27..a28c22d7 100644
]
[[package]]
-@@ -3956,6 +4106,12 @@ dependencies = [
+@@ -3986,6 +4136,12 @@ dependencies = [
"winapi-build",
]
@@ -971,6 +958,3 @@ index 21244f27..a28c22d7 100644
[[package]]
name = "x11-clipboard"
version = "0.3.3"
---
-2.29.2
-
diff --git a/projects/application-services/viaduct-workaround.patch b/projects/application-services/viaduct-workaround.patch
index 0c74aa7..b5b0121 100644
--- a/projects/application-services/viaduct-workaround.patch
+++ b/projects/application-services/viaduct-workaround.patch
@@ -1,15 +1,18 @@
-From 2b79903b41133799bcbe72aed2e9e8d54b278d30 Mon Sep 17 00:00:00 2001
+From 5020520a2b240512284a7396e99ed22c54042257 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Wed, 2 Dec 2020 09:26:24 +0000
Subject: [PATCH 1/2] Bug 40156: viaduct*-workaround
See: https://github.com/mozilla/application-services/issues/3732.
+---
+ nimbus/Cargo.toml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/nimbus/Cargo.toml b/nimbus/Cargo.toml
-index 3f118b7..0d0fa9b 100644
+index b19acc9..fd267b5 100644
--- a/nimbus/Cargo.toml
+++ b/nimbus/Cargo.toml
-@@ -25,7 +25,7 @@ serde_derive = "1"
+@@ -26,7 +26,7 @@ serde_derive = "1"
serde_json = "1"
log = "0.4"
# Viaduct locked to version same version of app-services as mozilla-central
@@ -18,8 +21,8 @@ index 3f118b7..0d0fa9b 100644
thiserror = "1"
url = "2.1"
rkv = "0.15"
-@@ -40,7 +40,7 @@ uniffi = "0.5"
- uniffi_build = { version = "0.5", features = [ "builtin-bindgen" ] }
+@@ -41,7 +41,7 @@ uniffi = { version = "0.7", optional = true }
+ uniffi_build = { version = "0.7", features = [ "builtin-bindgen" ], optional = true }
[dev-dependencies]
-viaduct-reqwest = { git = "https://github.com/mozilla/application-services", rev = "8a576fbe79199fa8664f64285524017f74ebcc5f"}
@@ -27,6 +30,3 @@ index 3f118b7..0d0fa9b 100644
mockito = "0.27"
env_logger = "0.7"
clap = "2.33.3"
---
-2.29.2
-
diff --git a/projects/application-services/viaduct-workaround2.patch b/projects/application-services/viaduct-workaround2.patch
index df84602..1bc27bb 100644
--- a/projects/application-services/viaduct-workaround2.patch
+++ b/projects/application-services/viaduct-workaround2.patch
@@ -1,109 +1,17 @@
-From 5d34bb6b8aa779cbb9d9bdb465aa38ff99ecc2d1 Mon Sep 17 00:00:00 2001
+From 9f3cf867a22a807cf997d2b0af283c7ce9d298fe Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Wed, 2 Dec 2020 09:26:43 +0000
Subject: [PATCH 2/2] Bug 40156: Cargo.lock update after viaduct*-workaround
+---
+ nimbus/Cargo.lock | 43 +++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 41 insertions(+), 2 deletions(-)
diff --git a/nimbus/Cargo.lock b/nimbus/Cargo.lock
-index 2339236..dfe0f6f 100644
+index 9caa76c..a73e464 100644
--- a/nimbus/Cargo.lock
+++ b/nimbus/Cargo.lock
-@@ -30,11 +30,17 @@ version = "0.3.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
-+[[package]]
-+name = "arrayvec"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-+
- [[package]]
- name = "askama"
--version = "0.10.3"
-+version = "0.10.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
-+checksum = "d298738b6e47e1034e560e5afe63aa488fea34e25ec11b855a76f0d7b8e73134"
- dependencies = [
- "askama_derive",
- "askama_escape",
-@@ -43,13 +49,12 @@ dependencies = [
-
- [[package]]
- name = "askama_derive"
--version = "0.10.3"
-+version = "0.10.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
-+checksum = "ca2925c4c290382f9d2fa3d1c1b6a63fa1427099721ecca4749b154cc9c25522"
- dependencies = [
- "askama_shared",
- "proc-macro2",
-- "quote",
- "syn",
- ]
-
-@@ -61,12 +66,12 @@ checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
-
- [[package]]
- name = "askama_shared"
--version = "0.10.4"
-+version = "0.11.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
-+checksum = "2582b77e0f3c506ec4838a25fa8a5f97b9bed72bb6d3d272ea1c031d8bd373bc"
- dependencies = [
- "askama_escape",
-- "nom",
-+ "nom 6.0.1",
- "proc-macro2",
- "quote",
- "serde",
-@@ -104,9 +109,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
- [[package]]
- name = "base64"
--version = "0.12.3"
-+version = "0.13.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
- [[package]]
- name = "bincode"
-@@ -124,6 +129,18 @@ version = "1.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-+[[package]]
-+name = "bitvec"
-+version = "0.19.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81"
-+dependencies = [
-+ "funty",
-+ "radium",
-+ "tap",
-+ "wyz",
-+]
-+
- [[package]]
- name = "block-buffer"
- version = "0.9.0"
-@@ -164,9 +181,9 @@ dependencies = [
-
- [[package]]
- name = "cc"
--version = "1.0.61"
-+version = "1.0.65"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d"
-+checksum = "95752358c8f7552394baf48cd82695b345628ad3f170d607de3ca03b8dacca15"
-
- [[package]]
- name = "cfg-if"
-@@ -206,6 +223,16 @@ dependencies = [
+@@ -223,6 +223,16 @@ dependencies = [
"winapi 0.3.9",
]
@@ -120,262 +28,7 @@ index 2339236..dfe0f6f 100644
[[package]]
name = "core-foundation"
version = "0.9.1"
-@@ -341,6 +368,16 @@ version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-+[[package]]
-+name = "form_urlencoded"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
-+dependencies = [
-+ "matches",
-+ "percent-encoding",
-+]
-+
- [[package]]
- name = "fuchsia-cprng"
- version = "0.1.1"
-@@ -363,53 +400,59 @@ version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-+[[package]]
-+name = "funty"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"
-+
- [[package]]
- name = "futures-channel"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "0448174b01148032eed37ac4aed28963aaaa8cfa93569a08e5b479bbc6c2c151"
-+checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
- dependencies = [
- "futures-core",
- ]
-
- [[package]]
- name = "futures-core"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "18eaa56102984bed2c88ea39026cff3ce3b4c7f508ca970cedf2450ea10d4e46"
-+checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
-
- [[package]]
- name = "futures-io"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "6e1798854a4727ff944a7b12aa999f58ce7aa81db80d2dfaaf2ba06f065ddd2b"
-+checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
-
- [[package]]
- name = "futures-sink"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "0e3ca3f17d6e8804ae5d3df7a7d35b2b3a6fe89dac84b31872720fc3060a0b11"
-+checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
-
- [[package]]
- name = "futures-task"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "96d502af37186c4fef99453df03e374683f8a1eec9dcc1e66b3b82dc8278ce3c"
-+checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
- dependencies = [
- "once_cell",
- ]
-
- [[package]]
- name = "futures-util"
--version = "0.3.7"
-+version = "0.3.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "abcb44342f62e6f3e8ac427b8aa815f724fd705dfad060b18ac7866c15bb8e34"
-+checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
- dependencies = [
- "futures-core",
- "futures-io",
- "futures-task",
- "memchr",
-- "pin-project 1.0.1",
-+ "pin-project 1.0.2",
- "pin-utils",
- "slab",
- ]
-@@ -543,7 +586,7 @@ dependencies = [
- "httparse",
- "httpdate",
- "itoa",
-- "pin-project 1.0.1",
-+ "pin-project 1.0.2",
- "socket2",
- "tokio",
- "tower-service",
-@@ -678,6 +721,19 @@ version = "1.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-+[[package]]
-+name = "lexical-core"
-+version = "0.7.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616"
-+dependencies = [
-+ "arrayvec",
-+ "bitflags",
-+ "cfg-if 0.1.10",
-+ "ryu",
-+ "static_assertions",
-+]
-+
- [[package]]
- name = "libc"
- version = "0.2.80"
-@@ -790,14 +846,14 @@ dependencies = [
- "rand 0.7.3",
- "regex",
- "serde_json",
-- "serde_urlencoded",
-+ "serde_urlencoded 0.6.1",
- ]
-
- [[package]]
- name = "native-tls"
--version = "0.2.5"
-+version = "0.2.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "1a1cda389c26d6b88f3d2dc38aa1b750fe87d298cc5d795ec9e975f402f00372"
-+checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f"
- dependencies = [
- "lazy_static",
- "libc",
-@@ -859,6 +915,18 @@ dependencies = [
- "version_check",
- ]
-
-+[[package]]
-+name = "nom"
-+version = "6.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0"
-+dependencies = [
-+ "bitvec",
-+ "lexical-core",
-+ "memchr",
-+ "version_check",
-+]
-+
- [[package]]
- name = "num-traits"
- version = "0.2.14"
-@@ -880,9 +948,9 @@ dependencies = [
-
- [[package]]
- name = "once_cell"
--version = "1.4.1"
-+version = "1.5.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
-+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
-
- [[package]]
- name = "opaque-debug"
-@@ -954,9 +1022,9 @@ dependencies = [
-
- [[package]]
- name = "paste"
--version = "1.0.2"
-+version = "1.0.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "ba7ae1a2180ed02ddfdb5ab70c70d596a26dd642e097bb6fe78b1bde8588ed97"
-+checksum = "7151b083b0664ed58ed669fcdd92f01c3d2fdbf10af4931a301474950b52bfa9"
-
- [[package]]
- name = "paste-impl"
-@@ -984,11 +1052,11 @@ dependencies = [
-
- [[package]]
- name = "pin-project"
--version = "1.0.1"
-+version = "1.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "ee41d838744f60d959d7074e3afb6b35c7456d0f61cad38a24e35e6553f73841"
-+checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
- dependencies = [
-- "pin-project-internal 1.0.1",
-+ "pin-project-internal 1.0.2",
- ]
-
- [[package]]
-@@ -1004,9 +1072,9 @@ dependencies = [
-
- [[package]]
- name = "pin-project-internal"
--version = "1.0.1"
-+version = "1.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "81a4ffa594b66bff340084d4081df649a7dc049ac8d7fc458d8e628bfbbb2f86"
-+checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
- dependencies = [
- "proc-macro2",
- "quote",
-@@ -1019,6 +1087,12 @@ version = "0.1.11"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
-
-+[[package]]
-+name = "pin-project-lite"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
-+
- [[package]]
- name = "pin-utils"
- version = "0.1.0"
-@@ -1114,6 +1188,12 @@ dependencies = [
- "proc-macro2",
- ]
-
-+[[package]]
-+name = "radium"
-+version = "0.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
-+
- [[package]]
- name = "rand"
- version = "0.4.6"
-@@ -1227,9 +1307,9 @@ dependencies = [
-
- [[package]]
- name = "reqwest"
--version = "0.10.8"
-+version = "0.10.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e"
-+checksum = "fb15d6255c792356a0f578d8a645c677904dc02e862bebe2ecc18e0c01b9a0ce"
- dependencies = [
- "base64",
- "bytes",
-@@ -1248,14 +1328,15 @@ dependencies = [
- "mime_guess",
- "native-tls",
- "percent-encoding",
-- "pin-project-lite",
-+ "pin-project-lite 0.2.0",
- "serde",
-- "serde_urlencoded",
-+ "serde_urlencoded 0.7.0",
- "tokio",
- "tokio-tls",
+@@ -1326,6 +1336,7 @@ dependencies = [
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
@@ -383,7 +36,7 @@ index 2339236..dfe0f6f 100644
"web-sys",
"winreg",
]
-@@ -1299,6 +1380,12 @@ dependencies = [
+@@ -1369,6 +1380,12 @@ dependencies = [
"winapi 0.3.9",
]
@@ -396,200 +49,7 @@ index 2339236..dfe0f6f 100644
[[package]]
name = "security-framework"
version = "2.0.0"
-@@ -1381,6 +1468,18 @@ dependencies = [
- "url",
- ]
-
-+[[package]]
-+name = "serde_urlencoded"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
-+dependencies = [
-+ "form_urlencoded",
-+ "itoa",
-+ "ryu",
-+ "serde",
-+]
-+
- [[package]]
- name = "sha2"
- version = "0.9.2"
-@@ -1402,16 +1501,22 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-
- [[package]]
- name = "socket2"
--version = "0.3.15"
-+version = "0.3.17"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44"
-+checksum = "2c29947abdee2a218277abeca306f25789c938e500ea5a9d4b12a5a504466902"
- dependencies = [
-- "cfg-if 0.1.10",
-+ "cfg-if 1.0.0",
- "libc",
- "redox_syscall",
- "winapi 0.3.9",
- ]
-
-+[[package]]
-+name = "static_assertions"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-+
- [[package]]
- name = "strsim"
- version = "0.8.0"
-@@ -1420,9 +1525,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
- [[package]]
- name = "syn"
--version = "1.0.48"
-+version = "1.0.51"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
-+checksum = "3b4f34193997d92804d359ed09953e25d5138df6bcc055a71bf68ee89fdf9223"
- dependencies = [
- "proc-macro2",
- "quote",
-@@ -1441,6 +1546,12 @@ dependencies = [
- "unicode-xid",
- ]
-
-+[[package]]
-+name = "tap"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
-+
- [[package]]
- name = "tempdir"
- version = "0.3.7"
-@@ -1467,9 +1578,9 @@ dependencies = [
-
- [[package]]
- name = "termcolor"
--version = "1.1.0"
-+version = "1.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
- dependencies = [
- "winapi-util",
- ]
-@@ -1514,15 +1625,24 @@ dependencies = [
-
- [[package]]
- name = "tinyvec"
--version = "0.3.4"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
-+dependencies = [
-+ "tinyvec_macros",
-+]
-+
-+[[package]]
-+name = "tinyvec_macros"
-+version = "0.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
-+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
- [[package]]
- name = "tokio"
--version = "0.2.22"
-+version = "0.2.23"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
-+checksum = "a6d7ad61edd59bfcc7e80dababf0f4aed2e6d5e0ba1659356ae889752dfc12ff"
- dependencies = [
- "bytes",
- "fnv",
-@@ -1532,7 +1652,7 @@ dependencies = [
- "memchr",
- "mio",
- "num_cpus",
-- "pin-project-lite",
-+ "pin-project-lite 0.1.11",
- "slab",
- ]
-
-@@ -1556,7 +1676,7 @@ dependencies = [
- "futures-core",
- "futures-sink",
- "log",
-- "pin-project-lite",
-+ "pin-project-lite 0.1.11",
- "tokio",
- ]
-
-@@ -1577,13 +1697,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
-
- [[package]]
- name = "tracing"
--version = "0.1.21"
-+version = "0.1.22"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
-+checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
- dependencies = [
-- "cfg-if 0.1.10",
-+ "cfg-if 1.0.0",
- "log",
-- "pin-project-lite",
-+ "pin-project-lite 0.2.0",
- "tracing-core",
- ]
-
-@@ -1638,18 +1758,18 @@ dependencies = [
-
- [[package]]
- name = "unicode-normalization"
--version = "0.1.13"
-+version = "0.1.16"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
-+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
- dependencies = [
- "tinyvec",
- ]
-
- [[package]]
- name = "unicode-segmentation"
--version = "1.6.0"
-+version = "1.7.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
-+checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
-
- [[package]]
- name = "unicode-width"
-@@ -1675,7 +1795,7 @@ dependencies = [
- "ffi-support",
- "lazy_static",
- "log",
-- "paste 1.0.2",
-+ "paste 1.0.3",
- ]
-
- [[package]]
-@@ -1706,10 +1826,11 @@ dependencies = [
-
- [[package]]
- name = "url"
--version = "2.1.1"
-+version = "2.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
-+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
- dependencies = [
-+ "form_urlencoded",
- "idna",
- "matches",
- "percent-encoding",
-@@ -1746,7 +1867,6 @@ checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+@@ -1850,7 +1867,6 @@ checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
[[package]]
name = "viaduct"
version = "0.1.0"
@@ -597,7 +57,7 @@ index 2339236..dfe0f6f 100644
dependencies = [
"ffi-support",
"log",
-@@ -1762,7 +1882,6 @@ dependencies = [
+@@ -1866,7 +1882,6 @@ dependencies = [
[[package]]
name = "viaduct-reqwest"
version = "0.1.0"
@@ -605,9 +65,9 @@ index 2339236..dfe0f6f 100644
dependencies = [
"ffi-support",
"lazy_static",
-@@ -1855,6 +1974,30 @@ version = "0.2.68"
+@@ -1959,6 +1974,30 @@ version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
+ checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
+[[package]]
+name = "wasm-bindgen-test"
@@ -635,26 +95,4 @@ index 2339236..dfe0f6f 100644
+
[[package]]
name = "web-sys"
- version = "0.3.45"
-@@ -1871,7 +2014,7 @@ version = "0.11.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
- dependencies = [
-- "nom",
-+ "nom 5.1.2",
- ]
-
- [[package]]
-@@ -1935,3 +2078,9 @@ dependencies = [
- "winapi 0.2.8",
- "winapi-build",
- ]
-+
-+[[package]]
-+name = "wyz"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
---
-2.29.2
-
+ version = "0.3.46"
diff --git a/projects/uniffi-rs/config b/projects/uniffi-rs/config
index 7d89cc2..acd9d2d 100644
--- a/projects/uniffi-rs/config
+++ b/projects/uniffi-rs/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
-version: 0.5.0
+version: 0.7.0
git_url: https://github.com/mozilla/uniffi-rs
-git_hash: bc4a8570ab8430a4f80c3722ef79ff9a4819969e
+git_hash: ea3ff0402438ef1ebceda4c5fbbbd2ed6a9be227
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var:
@@ -13,6 +13,6 @@ input_files:
- name: rust
project: rust
# `cargo vendor vendor` in the `uniffi-rs` directory has vendored the sources.
- - URL: https://people.torproject.org/~gk/mirrors/sources/uniffi-rs-vendor-[% c('version') %].tar.bz2
- sha256sum: 71d912237208c35a762b3c812afe0a758823792dd745c1253314bcccc1694b7f
+ - URL: https://people.torproject.org/~boklm/mirrors/sources/uniffi-rs-vendor-[% c('version') %].tar.bz2
+ sha256sum: 8f201df618b3e7bcaaf01a87e0d55171605b80abeb1b660fe4dd0b9bfc10a0d8
- filename: btreeset.patch
1
0
[tor-browser-build/master] Bug 40172: Remove gradle 6.3 from android-toolchain
by sysrqb@torproject.org 16 Mar '21
by sysrqb@torproject.org 16 Mar '21
16 Mar '21
commit 503916bba029597f095391c7b777e320a5716348
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Mar 4 19:46:53 2021 +0100
Bug 40172: Remove gradle 6.3 from android-toolchain
---
projects/android-toolchain/build | 2 --
projects/android-toolchain/config | 4 ----
2 files changed, 6 deletions(-)
diff --git a/projects/android-toolchain/build b/projects/android-toolchain/build
index ff132be..aafc584 100644
--- a/projects/android-toolchain/build
+++ b/projects/android-toolchain/build
@@ -18,8 +18,6 @@ unzip -qq [% c("input_files_by_name/android_ndk_compiler_old")%] -d $NDK_HOME
unzip -qq [% c("input_files_by_name/gradle564") %] -d $GRADLE_HOME
# GeckoView is still using an older Gradle, bundle it, too.
unzip -qq [% c("input_files_by_name/gradle511") %] -d $GRADLE_HOME
-# application-services is using a comparatively new Gradle, bundle it, too.
-unzip -qq [% c("input_files_by_name/gradle63") %] -d $GRADLE_HOME
# NDK Archive
for version in [% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %] [% c("var/android_ndk_version_old") %]; do
diff --git a/projects/android-toolchain/config b/projects/android-toolchain/config
index 648b1d9..24a41c2 100644
--- a/projects/android-toolchain/config
+++ b/projects/android-toolchain/config
@@ -32,7 +32,6 @@ var:
android_ndk_version: 21
android_ndk_version_old: 20
android_ndk_revision: d
- gradle63: 6.3
gradle564: 5.6.4
gradle511: 5.1.1
input_files:
@@ -61,9 +60,6 @@ input_files:
- URL: '[% c("var/google_repo") %]/android-ndk-r[% c("var/android_ndk_version_old") %]-linux-x86_64.zip'
name: android_ndk_compiler_old
sha256sum: 57435158f109162f41f2f43d5563d2164e4d5d0364783a9a6fab3ef12cb06ce0
- - URL: https://services.gradle.org/distributions/gradle-[% c("var/gradle63") %]-bin.zip
- name: gradle63
- sha256sum: 038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768
- URL: https://services.gradle.org/distributions/gradle-[% c("var/gradle564") %]-bin.zip
name: gradle564
sha256sum: 1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d
1
0
[tor-browser-build/master] Bug 40172: Remove gradle 6.5.1 from android-toolchain
by sysrqb@torproject.org 16 Mar '21
by sysrqb@torproject.org 16 Mar '21
16 Mar '21
commit 13a415f6b59d637e80315147c579f4f8ea8fa547
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Mar 4 19:41:58 2021 +0100
Bug 40172: Remove gradle 6.5.1 from android-toolchain
---
projects/android-toolchain/build | 2 --
projects/android-toolchain/config | 4 ----
projects/fenix/build | 6 ++++--
projects/fenix/config | 3 +++
projects/gradle/config | 1 +
5 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/projects/android-toolchain/build b/projects/android-toolchain/build
index a0d5ee8..ff132be 100644
--- a/projects/android-toolchain/build
+++ b/projects/android-toolchain/build
@@ -20,8 +20,6 @@ unzip -qq [% c("input_files_by_name/gradle564") %] -d $GRADLE_HOME
unzip -qq [% c("input_files_by_name/gradle511") %] -d $GRADLE_HOME
# application-services is using a comparatively new Gradle, bundle it, too.
unzip -qq [% c("input_files_by_name/gradle63") %] -d $GRADLE_HOME
-# Fenix switched to a fairly recent Gradle, add it as well.
-unzip -qq [% c("input_files_by_name/gradle651") %] -d $GRADLE_HOME
# NDK Archive
for version in [% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %] [% c("var/android_ndk_version_old") %]; do
diff --git a/projects/android-toolchain/config b/projects/android-toolchain/config
index f3214ab..648b1d9 100644
--- a/projects/android-toolchain/config
+++ b/projects/android-toolchain/config
@@ -32,7 +32,6 @@ var:
android_ndk_version: 21
android_ndk_version_old: 20
android_ndk_revision: d
- gradle651: 6.5.1
gradle63: 6.3
gradle564: 5.6.4
gradle511: 5.1.1
@@ -62,9 +61,6 @@ input_files:
- URL: '[% c("var/google_repo") %]/android-ndk-r[% c("var/android_ndk_version_old") %]-linux-x86_64.zip'
name: android_ndk_compiler_old
sha256sum: 57435158f109162f41f2f43d5563d2164e4d5d0364783a9a6fab3ef12cb06ce0
- - URL: https://services.gradle.org/distributions/gradle-[% c("var/gradle651") %]-bin.zip
- name: gradle651
- sha256sum: 50a7d30529fa939721fe9268a0205142f3f2302bcac5fb45b27a3902e58db54a
- URL: https://services.gradle.org/distributions/gradle-[% c("var/gradle63") %]-bin.zip
name: gradle63
sha256sum: 038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768
diff --git a/projects/fenix/build b/projects/fenix/build
index c91dce3..c2f6f32 100644
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -6,6 +6,8 @@ builddir=/var/tmp/build/[% project %]
mkdir -p $distdir/[% project %]
mkdir -p /var/tmp/build
+tar -C $GRADLE_HOME -xf $rootdir/[% c('input_files_by_name/gradle') %]
+
cat > get-moz-build-date << "EOF"
[% INCLUDE "get-moz-build-date" %]
EOF
@@ -40,7 +42,7 @@ cp $rootdir/[% c('input_files_by_name/tor-android-service') %]/* app/
# XXX We need the build variant in lower case. Do something smarter here.
v=[% c("variant") %]
[% IF c("var/fetch_gradle_dependencies") %]
- $GRADLE_HOME/gradle-6.5.1/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
+ $GRADLE_HOME/gradle/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
[% ELSE %]
# Add our localized strings
[% FOREACH lang = c('var/locales_mobile');
@@ -65,7 +67,7 @@ v=[% c("variant") %]
fi
version_name='[% c("var/torbrowser_version") %] ([% c("var/fenix_version") %]-[% c("variant") %])'
- $GRADLE_HOME/gradle-6.5.1/bin/gradle --offline --no-daemon -PversionName="$version_name" -Dmaven.repo.local=$gradle_repo app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
+ $GRADLE_HOME/gradle/bin/gradle --offline --no-daemon -PversionName="$version_name" -Dmaven.repo.local=$gradle_repo app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
cp app/build/outputs/apk/${v,}/*.apk $distdir/[% project %]
cp app/build/outputs/apk/androidTest/${v,}/app-${v,}-androidTest.apk $distdir/[% project %]
diff --git a/projects/fenix/config b/projects/fenix/config
index ae81e3f..79c9cd1 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -18,6 +18,7 @@ var:
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit that integrates Tor.
fetch_gradle_dependencies: 0
+ gradle_version: 6.5.1
targets:
nightly:
@@ -29,6 +30,8 @@ input_files:
- project: container-image
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
+ - project: gradle
+ name: gradle
- name: android-components
project: android-components
enable: '[% !c("var/fetch_gradle_dependencies") %]'
diff --git a/projects/gradle/config b/projects/gradle/config
index 4ad4a16..3f0f412 100644
--- a/projects/gradle/config
+++ b/projects/gradle/config
@@ -9,6 +9,7 @@ var:
- unzip
gradle_sha256sum:
6.5: 23e7d37e9bb4f8dabb8a3ea7fdee9dd0428b9b1a71d298aefd65b11dccea220f
+ 6.5.1: 50a7d30529fa939721fe9268a0205142f3f2302bcac5fb45b27a3902e58db54a
6.6.1: 7873ed5287f47ca03549ab8dcb6dc877ac7f0e3d7b1eb12685161d10080910ac
input_files:
1
0