Hello community,

here is the log from the commit of package vtk for openSUSE:Leap:15.2 checked 
in at 2020-05-12 11:40:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/vtk (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.vtk.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vtk"

Tue May 12 11:40:13 2020 rev:17 rq:802598 version:8.2.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/vtk/vtk.changes        2020-05-11 
08:38:37.510930550 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.vtk.new.2738/vtk.changes      2020-05-12 
11:42:30.877019269 +0200
@@ -1,0 +2,38 @@
+Mon Apr 27 11:00:45 UTC 2020 - Atri Bhattacharya <[email protected]>
+
+- Fix serial builds broken due to disabling the building of
+  examples; instead of commenting out sections of the specfile
+  related to examples, use %bcond_with to disable building
+  examples by default and the corresponding conditionals where
+  appropriate.
+
+-------------------------------------------------------------------
+Sun Apr 26 04:21:40 UTC 2020 - Bernhard Wiedemann <[email protected]>
+
+- add reproducible.patch to override build date and to sort entries
+  (boo#1047218, boo#1041090)
+
+-------------------------------------------------------------------
+Fri Apr 24 08:28:02 UTC 2020 - Atri Bhattacharya <[email protected]>
+
+- Disable building examples to prevent vtkLocalExample.java
+  randomly missing from vtk.jar (boo#1138295, see also upstream
+  recommendation in
+  https://gitlab.kitware.com/vtk/vtk/issues/17619).
+
+-------------------------------------------------------------------
+Wed Mar 11 13:17:49 UTC 2020 - Stefan Brüns <[email protected]>
+
+- Remove -DVTK_PYTHON_SITE_PACKAGES_SUFFIX silently added with the
+  last change. As it specifies the path relative to the install
+  prefix, setting it to the absolute python_sitearch is obviously
+  wrong. As VTK figures out the correct path by itself, it is
+  completely unnecessary.
+
+-------------------------------------------------------------------
+Tue Mar 10 14:06:37 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Add patch to fix building with python 3.8:
+  * python38.patch
+
+-------------------------------------------------------------------

New:
----
  python38.patch
  reproducible.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vtk.spec ++++++
--- /var/tmp/diff_new_pack.hZWLVU/_old  2020-05-12 11:42:31.425020420 +0200
+++ /var/tmp/diff_new_pack.hZWLVU/_new  2020-05-12 11:42:31.425020420 +0200
@@ -18,6 +18,10 @@
 
 %global flavor @BUILD_FLAVOR@%{nil}
 
+# FIXME: ENABLE EXAMPLES BY DEFAULT WHEN VERSION 9.0 IS PACKAGED
+# [https://gitlab.kitware.com/vtk/vtk/issues/17619]
+%bcond_with examples
+
 %if 0%{?sle_version} >= 150200
 %define DisOMPI1 ExclusiveArch:  do_not_build
 %endif
@@ -108,6 +112,10 @@
 Patch5:         0001-Add-libogg-to-IOMovie-target-link-libraries.patch
 # PATCH-FIX-UPSTREAM -- Compatibility for proj4 5.x and 6.0, 
https://gitlab.kitware.com/vtk/vtk/issues/17554
 Patch6:         0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch
+# PATCH-FIX-UPSTREAM -- Support for python3.8
+Patch7:         python38.patch
+# PATCH-FIX-UPSTREAM https://gitlab.kitware.com/vtk/vtk/merge_requests/5633 + 
5634
+Patch8:         reproducible.patch
 BuildRequires:  R-base-devel
 BuildRequires:  chrpath
 BuildRequires:  cmake >= 3.4
@@ -349,6 +357,8 @@
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 # Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata
 # otherwise it will break on symlinks.
@@ -375,7 +385,7 @@
 # since JDK8.
 %cmake \
     -DBUILD_DOCUMENTATION:BOOL=ON \
-    -DBUILD_EXAMPLES:BOOL=ON \
+    -DBUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \
     -DBUILD_TESTING:BOOL=OFF \
     -DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
     -DJava_JAVAH_EXECUTABLE:PATH=%{_bindir}/true \
@@ -399,7 +409,6 @@
     -DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \
     -DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \
     -DVTK_INSTALL_QT_DIR:STRING=%{_lib}/qt5/plugins/designer \
-    -DVTK_INSTALL_PYTHON_MODULE_DIR:PATH=%{python3_sitearch} \
     -DVTK_PYTHON_VERSION=3 \
     -DVTK_QT_VERSION=5 \
     -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON \
@@ -428,6 +437,7 @@
 %install
 %cmake_install
 
+%if %{with examples}
 # List of executable examples
 cat > examples.list << EOF
 AmbientSpheres
@@ -479,6 +489,8 @@
 perl -pi -e's,^,%{my_bindir}/,' examples.list
 %endif
 
+%endif
+
 %fdupes -s %{buildroot}
 
 %check
@@ -491,6 +503,7 @@
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{my_libdir}
 export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitearch}
 python3 -c "import vtk"
+find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible 
time-based .pyc file
 
 %post   -n %{shlib} -p /sbin/ldconfig
 %postun -n %{shlib} -p /sbin/ldconfig
@@ -557,9 +570,11 @@
 %dir %{my_libdir}/qt5/plugins/designer/
 %{my_libdir}/qt5/plugins/designer/libQVTKWidgetPlugin.so
 
+%if %{with examples}
 %if "%{flavor}" == ""
 %files examples -f examples.list
 %license Copyright.txt
 %endif
+%endif
 
 %changelog

++++++ python38.patch ++++++
>From 257b9d7b18d5f3db3fe099dc18f230e23f7dfbab Mon Sep 17 00:00:00 2001
From: David Gobbi <[email protected]>
Date: Tue, 20 Aug 2019 17:02:24 -0600
Subject: [PATCH] Compatibility for Python 3.8

The PyTypeObject struct was modified in Python 3.8, this change is
required to avoid compile errors.
---
 .../PythonInterpreter/vtkPythonStdStreamCaptureHelper.h   | 6 ++++++
 Wrapping/PythonCore/PyVTKMethodDescriptor.cxx             | 2 +-
 Wrapping/PythonCore/PyVTKNamespace.cxx                    | 2 +-
 Wrapping/PythonCore/PyVTKReference.cxx                    | 8 ++++----
 Wrapping/PythonCore/PyVTKTemplate.cxx                     | 2 +-
 Wrapping/PythonCore/vtkPythonCompatibility.h              | 8 +++++++-
 Wrapping/Tools/vtkWrapPythonClass.c                       | 2 +-
 Wrapping/Tools/vtkWrapPythonEnum.c                        | 2 +-
 Wrapping/Tools/vtkWrapPythonType.c                        | 2 +-
 9 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h 
b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
index b1c12c83de..14ccfbe928 100644
--- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
+++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
@@ -140,6 +140,12 @@ static PyTypeObject vtkPythonStdStreamCaptureHelperType = {
 #if PY_VERSION_HEX >= 0x03040000
   0, // tp_finalize
 #endif
+#if PY_VERSION_HEX >= 0x03080000
+  0, // tp_vectorcall
+#if PY_VERSION_HEX < 0x03090000
+  0, // tp_print
+#endif
+#endif
 };
 
 static PyObject* vtkWrite(PyObject* self, PyObject* args)
diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx 
b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
index 2b0d443537..3840038498 100644
--- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
+++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
@@ -186,7 +186,7 @@ PyTypeObject PyVTKMethodDescriptor_Type = {
   sizeof(PyMethodDescrObject),           // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKMethodDescriptor_Delete,          // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx 
b/Wrapping/PythonCore/PyVTKNamespace.cxx
index 71ee2a3516..5cf5bfbe6b 100644
--- a/Wrapping/PythonCore/PyVTKNamespace.cxx
+++ b/Wrapping/PythonCore/PyVTKNamespace.cxx
@@ -49,7 +49,7 @@ PyTypeObject PyVTKNamespace_Type = {
   0,                                     // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKNamespace_Delete,                 // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
diff --git a/Wrapping/PythonCore/PyVTKReference.cxx 
b/Wrapping/PythonCore/PyVTKReference.cxx
index 943ac71080..b7104091c0 100644
--- a/Wrapping/PythonCore/PyVTKReference.cxx
+++ b/Wrapping/PythonCore/PyVTKReference.cxx
@@ -1010,7 +1010,7 @@ PyTypeObject PyVTKReference_Type = {
   sizeof(PyVTKReference),                // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKReference_Delete,                 // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
@@ -1067,7 +1067,7 @@ PyTypeObject PyVTKNumberReference_Type = {
   sizeof(PyVTKReference),                // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKReference_Delete,                 // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
@@ -1124,7 +1124,7 @@ PyTypeObject PyVTKStringReference_Type = {
   sizeof(PyVTKReference),                // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKReference_Delete,                 // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
@@ -1181,7 +1181,7 @@ PyTypeObject PyVTKTupleReference_Type = {
   sizeof(PyVTKReference),                // tp_basicsize
   0,                                     // tp_itemsize
   PyVTKReference_Delete,                 // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx 
b/Wrapping/PythonCore/PyVTKTemplate.cxx
index be200985b3..340fe7953b 100644
--- a/Wrapping/PythonCore/PyVTKTemplate.cxx
+++ b/Wrapping/PythonCore/PyVTKTemplate.cxx
@@ -268,7 +268,7 @@ PyTypeObject PyVTKTemplate_Type = {
   0,                                     // tp_basicsize
   0,                                     // tp_itemsize
   nullptr,                               // tp_dealloc
-  nullptr,                               // tp_print
+  0,                                     // tp_vectorcall_offset
   nullptr,                               // tp_getattr
   nullptr,                               // tp_setattr
   nullptr,                               // tp_compare
diff --git a/Wrapping/PythonCore/vtkPythonCompatibility.h 
b/Wrapping/PythonCore/vtkPythonCompatibility.h
index 4a767844a6..be208faeef 100644
--- a/Wrapping/PythonCore/vtkPythonCompatibility.h
+++ b/Wrapping/PythonCore/vtkPythonCompatibility.h
@@ -64,7 +64,13 @@
 #endif
 
 // PyTypeObject compatibility
-#if PY_VERSION_HEX >= 0x03040000
+#if PY_VERSION_HEX >= 0x03090000
+#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
+  0, 0, 0, 0,
+#elif PY_VERSION_HEX >= 0x03080000
+#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
+  0, 0, 0, 0, 0,
+#elif PY_VERSION_HEX >= 0x03040000
 #define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
   0, 0, 0,
 #else
diff --git a/Wrapping/Tools/vtkWrapPythonClass.c 
b/Wrapping/Tools/vtkWrapPythonClass.c
index b1e45f8e80..4d558ea081 100644
--- a/Wrapping/Tools/vtkWrapPythonClass.c
+++ b/Wrapping/Tools/vtkWrapPythonClass.c
@@ -521,7 +521,7 @@ void vtkWrapPython_GenerateObjectType(
     "  sizeof(PyVTKObject), // tp_basicsize\n"
     "  0, // tp_itemsize\n"
     "  PyVTKObject_Delete, // tp_dealloc\n"
-    "  nullptr, // tp_print\n"
+    "  0, // tp_vectorcall_offset\n"
     "  nullptr, // tp_getattr\n"
     "  nullptr, // tp_setattr\n"
     "  nullptr, // tp_compare\n"
diff --git a/Wrapping/Tools/vtkWrapPythonEnum.c 
b/Wrapping/Tools/vtkWrapPythonEnum.c
index b933702242..1249362854 100644
--- a/Wrapping/Tools/vtkWrapPythonEnum.c
+++ b/Wrapping/Tools/vtkWrapPythonEnum.c
@@ -145,7 +145,7 @@ void vtkWrapPython_GenerateEnumType(
     "  sizeof(PyIntObject), // tp_basicsize\n"
     "  0, // tp_itemsize\n"
     "  nullptr, // tp_dealloc\n"
-    "  nullptr, // tp_print\n"
+    "  0, // tp_vectorcall_offset\n"
     "  nullptr, // tp_getattr\n"
     "  nullptr, // tp_setattr\n"
     "  nullptr, // tp_compare\n"
diff --git a/Wrapping/Tools/vtkWrapPythonType.c 
b/Wrapping/Tools/vtkWrapPythonType.c
index 744cb1b9d3..0a1375e541 100644
--- a/Wrapping/Tools/vtkWrapPythonType.c
+++ b/Wrapping/Tools/vtkWrapPythonType.c
@@ -709,7 +709,7 @@ void vtkWrapPython_GenerateSpecialType(
     "  sizeof(PyVTKSpecialObject), // tp_basicsize\n"
     "  0, // tp_itemsize\n"
     "  Py%s_Delete, // tp_dealloc\n"
-    "  nullptr, // tp_print\n"
+    "  0, // tp_vectorcall_offset\n"
     "  nullptr, // tp_getattr\n"
     "  nullptr, // tp_setattr\n"
     "  nullptr, // tp_compare\n"
-- 
2.21.0

++++++ reproducible.patch ++++++
https://gitlab.kitware.com/vtk/vtk/merge_requests/5633
https://gitlab.kitware.com/vtk/vtk/merge_requests/5634

Index: VTK-8.2.0/Utilities/Doxygen/doc_codematch.pl
===================================================================
--- VTK-8.2.0.orig/Utilities/Doxygen/doc_codematch.pl
+++ VTK-8.2.0/Utilities/Doxygen/doc_codematch.pl
@@ -249,7 +249,7 @@ foreach my $source (@files) {
 
     my $preamble = "    \@par      " . $args{"label"} . ":\n";
     my $doc = $preamble .
-      "              " . join(" ", keys %{$class2matches{$class}}) . "\n";
+      "              " . join(" ", sort keys %{$class2matches{$class}}) . "\n";
 
     if ($block !~ s/($preamble.+?)(\s*\@par|\z)/$doc$2/gms) {
         $block .= "\n$doc";
@@ -282,7 +282,7 @@ my $header;
 my (@summary, @credits);
 
 push @summary,
-  "  - $nb_files implementation file(s) returning " . scalar (keys 
%allmatches) . " word(s) for " . scalar (keys %allclasses) . " classe(es) on " 
. localtime(),
+  "  - $nb_files implementation file(s) returning " . scalar (keys 
%allmatches) . " word(s) for " . scalar (keys %allclasses) . " classe(es) on " 
. gmtime($ENV{SOURCE_DATE_EPOCH}||time),
   "  - $nb_replaced_files file(s) updated";
 
 push @credits,
Index: VTK-8.2.0/Utilities/Doxygen/doc_index.pl
===================================================================
--- VTK-8.2.0.orig/Utilities/Doxygen/doc_index.pl
+++ VTK-8.2.0/Utilities/Doxygen/doc_index.pl
@@ -213,7 +213,7 @@ foreach my $source (@files) {
     }
 }
 
-my @words = keys %index;
+my @words = sort keys %index;
 print " => ", scalar @words, " word(s) grabbed in $nb_files file(s) in ", 
time() - $intermediate_time, " s.\n";
 
 # -------------------------------------------------------------------------
@@ -243,7 +243,7 @@ print "Grouping...\n";
 
 sub transfer_keys {
     my ($rfrom, $rto) = @_;
-    foreach my $key (keys %$rfrom) {
+    foreach my $key (sort keys %$rfrom) {
         $rto->{$key} += $rfrom->{$key};
     }
 }
@@ -350,7 +350,7 @@ foreach my $word (@words) {
     # with these extensions that were not found and build a list of similar
     # "words" by concatenating both.
 
-    my @verbs = keys %verbs;
+    my @verbs = sort keys %verbs;
     if (@verbs) {
         my %try = ("" => 1,
                    "e" => 1,
@@ -397,7 +397,7 @@ print " => $nb_grouped word(s) grouped.\
 
 print "Normalizing...\n";
 
-@words = keys %index;
+@words = sort keys %index;
 foreach my $word (@words) {
     my $lcw = lc $word;
 
@@ -413,7 +413,7 @@ foreach my $word (@words) {
     # Normalize group to lowercase
 
     if (exists $group{$word}) {
-        foreach my $gword (keys %{$group{$word}}) {
+        foreach my $gword (sort keys %{$group{$word}}) {
             my $lcgw = lc $gword;
             if ($gword ne uc($gword) && $gword ne $lcgw) {
                 $group{$word}{$lcgw} = $group{$word}{$gword};
@@ -441,7 +441,7 @@ my (@summary, @credits);
 
 push @summary,
   "  - $nb_files file(s) indexed by " . scalar @words . " word(s) on " .
-  localtime(),
+  gmtime($ENV{SOURCE_DATE_EPOCH}||time),
   "  - max limit is " . $args{"limit"} . " xref(s) per word";
 
 push @credits,
Index: VTK-8.2.0/Utilities/Doxygen/doc_class2example.pl
===================================================================
--- VTK-8.2.0.orig/Utilities/Doxygen/doc_class2example.pl
+++ VTK-8.2.0/Utilities/Doxygen/doc_class2example.pl
@@ -171,7 +171,7 @@ sub unique {
     foreach my $item (@$ref) {
         $uniques{$item}++;
     }
-    return keys %uniques;
+    return sort keys %uniques;
 }
 
 sub parse {
@@ -506,7 +506,7 @@ my (@summary, @credits, @legend);
 
 push @summary,
   "  - " . scalar @words . " class(es) in " .
-  scalar @parsable . " file(s) from directories matching \@c " . 
$args{"dirmatch"} . " on " . localtime();
+  scalar @parsable . " file(s) from directories matching \@c " . 
$args{"dirmatch"} . " on " . gmtime($ENV{SOURCE_DATE_EPOCH}||time);
 
 push @summary,
   "  - " . scalar @parsers . " parser(s) : [" . join(", ", @parsers) . "]";
Index: VTK-8.2.0/Utilities/Doxygen/doc_contributors.pl
===================================================================
--- VTK-8.2.0.orig/Utilities/Doxygen/doc_contributors.pl
+++ VTK-8.2.0/Utilities/Doxygen/doc_contributors.pl
@@ -462,7 +462,7 @@ my $nb_removed = 0;
 
 foreach my $signature (sort { (scalar keys 
%{$log_revision_by_signature_file{$b}}) <=> (scalar keys 
%{$log_revision_by_signature_file{$a}}) }
                        keys %log_revision_by_signature_file) {
-    my @files = keys %{$log_revision_by_signature_file{$signature}};
+    my @files = sort keys %{$log_revision_by_signature_file{$signature}};
 
     if (scalar @files > $args{"massive"}) {
         print " >> Removed: (" . scalar @files . ")\n     " .
@@ -521,7 +521,7 @@ $intermediate_time = time();
 
 # Browse each file, each revision and use contribution
 
-foreach my $file_name (keys %files_visited) {
+foreach my $file_name (sort keys %files_visited) {
 
     # Check if file is part of a class group
 
@@ -533,7 +533,7 @@ foreach my $file_name (keys %files_visit
         
$classes{$class_name}{'creators'}{$log_by_file_revision{$file_name}{'1.1'}{'author'}}
 = 1;
     }
 
-    foreach my $revision (keys %{$log_by_file_revision{$file_name}}) {
+    foreach my $revision (sort keys %{$log_by_file_revision{$file_name}}) {
 
         my $author = $log_by_file_revision{$file_name}{$revision}{'author'};
 
@@ -603,7 +603,7 @@ while (@classes_names) {
     # Find the class header name
 
     my $source_header_name = undef;
-    foreach my $file_name (keys %{$classes{$class_name}{'files'}}) {
+    foreach my $file_name (sort keys %{$classes{$class_name}{'files'}}) {
         if ($file_name =~ m/\.h$/) {
             $source_header_name = $file_name;
             last;
@@ -682,7 +682,7 @@ while (@classes_names) {
 
     if (exists $args{"cvsweb"}) {
         $doc .= "\n    \@par      CVS logs (CVSweb):\n";
-        foreach my $file (keys %{$classes{$class_name}{'files'}}) {
+        foreach my $file (sort keys %{$classes{$class_name}{'files'}}) {
             my $shortname = get_short_relative_name($file, 
$args{"relativeto"});
             my ($base, $dir, $ext) = fileparse($shortname, '\..*');
             $doc .= '                - @htmlonly<A href="' . $args{"cvsweb"}
@@ -769,10 +769,10 @@ my %contribution_by_author;
 
 my %contribution_by_date;
 
-foreach my $contributor (keys %contribution_by_author_file) {
+foreach my $contributor (sort keys %contribution_by_author_file) {
 
     foreach my $file_name
-      (keys %{$contribution_by_author_file{$contributor}}) {
+      (sort keys %{$contribution_by_author_file{$contributor}}) {
         $contribution_by_author{$contributor} +=
           $contribution_by_author_file{$contributor}{$file_name};
     }

Reply via email to