i18npool/source/breakiterator/breakiterator_th.cxx      |    3 --
 i18npool/source/breakiterator/xdictionary.cxx           |    1 
 include/i18nutil/searchopt.hxx                          |    6 ----
 include/oox/dump/dumperbase.hxx                         |    4 +--
 include/osl/diagnose.hxx                                |    2 -
 include/svx/ClassificationField.hxx                     |    3 --
 include/svx/ShapeTypeHandler.hxx                        |    3 --
 include/svx/svdmark.hxx                                 |    4 ---
 include/svx/svdpage.hxx                                 |    2 -
 include/toolkit/controls/unocontrolbase.hxx             |    4 +--
 include/unotools/confignode.hxx                         |    2 -
 include/vcl/pdfextoutdevdata.hxx                        |    1 
 include/vcl/pdfwriter.hxx                               |    1 
 jvmfwk/source/elements.cxx                              |    6 ----
 l10ntools/source/po.cxx                                 |   21 +++-------------
 l10ntools/source/propmerge.cxx                          |    3 --
 l10ntools/source/xrmmerge.cxx                           |    6 +---
 linguistic/source/gciterator.cxx                        |    1 
 linguistic/source/lngprophelp.cxx                       |    1 
 lotuswordpro/source/filter/lwp9reader.cxx               |    1 
 lotuswordpro/source/filter/lwpfilehdr.cxx               |    1 
 lotuswordpro/source/filter/lwpobjhdr.cxx                |    1 
 oox/source/core/relations.cxx                           |    3 --
 oox/source/crypto/CryptTools.cxx                        |    5 ---
 oox/source/drawingml/diagram/diagramfragmenthandler.cxx |    2 -
 oox/source/drawingml/shape.cxx                          |    5 ---
 oox/source/drawingml/textbodyproperties.cxx             |    1 
 27 files changed, 24 insertions(+), 69 deletions(-)

New commits:
commit 9c9ff9e89fd50223b28f327d3a7e416ab0ae831f
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Aug 31 18:06:01 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Sep 1 10:01:44 2021 +0200

    clang-tidy:readability-redundant-member-init
    
    Change-Id: I78339f1df1f0c55c7edaa552940b07d1ada3aeb5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121386
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/i18npool/source/breakiterator/breakiterator_th.cxx 
b/i18npool/source/breakiterator/breakiterator_th.cxx
index df78aeab3afe..d7accc160f7d 100644
--- a/i18npool/source/breakiterator/breakiterator_th.cxx
+++ b/i18npool/source/breakiterator/breakiterator_th.cxx
@@ -33,8 +33,7 @@ namespace i18npool {
 /**
  * Constructor.
  */
-BreakIterator_th::BreakIterator_th() :
-    cachedText()
+BreakIterator_th::BreakIterator_th()
 {
     cBreakIterator = "com.sun.star.i18n.BreakIterator_th";
     // to improve performance, alloc big enough memory in construct.
diff --git a/i18npool/source/breakiterator/xdictionary.cxx 
b/i18npool/source/breakiterator/xdictionary.cxx
index 25dc8bb0ee9b..86a703db0440 100644
--- a/i18npool/source/breakiterator/xdictionary.cxx
+++ b/i18npool/source/breakiterator/xdictionary.cxx
@@ -61,7 +61,6 @@ sal_Unicode* getDataArea_zh();
 #endif
 
 xdictionary::xdictionary(const char *lang) :
-    boundary(),
     japaneseWordBreak( false )
 {
 
diff --git a/include/i18nutil/searchopt.hxx b/include/i18nutil/searchopt.hxx
index 56bfaa3f87a6..817014af8d96 100644
--- a/include/i18nutil/searchopt.hxx
+++ b/include/i18nutil/searchopt.hxx
@@ -60,9 +60,6 @@ struct SAL_WARN_UNUSED SearchOptions {
     SearchOptions()
         : algorithmType(::css::util::SearchAlgorithms_ABSOLUTE)
         , searchFlag(0)
-        , searchString()
-        , replaceString()
-        , Locale()
         , changedChars(0)
         , deletedChars(0)
         , insertedChars(0)
@@ -117,8 +114,7 @@ struct SAL_WARN_UNUSED SearchOptions2 : public 
SearchOptions {
     }
 
     SearchOptions2()
-        : SearchOptions()
-        , AlgorithmType2(0)
+        : AlgorithmType2(0)
         , WildcardEscapeCharacter(0)
     {}
 
diff --git a/include/oox/dump/dumperbase.hxx b/include/oox/dump/dumperbase.hxx
index 81c3a2fcb21e..53a35775ce9d 100644
--- a/include/oox/dump/dumperbase.hxx
+++ b/include/oox/dump/dumperbase.hxx
@@ -742,8 +742,8 @@ private:
     ::std::map< sal_Int64, ItemFormat > maMap;
 
 public:
-    ItemFormatMap() : maMap() {}
-    explicit     ItemFormatMap( const NameListRef& rxNameList ) { 
insertFormats( rxNameList ); }
+    ItemFormatMap() {}
+    explicit ItemFormatMap( const NameListRef& rxNameList ) { insertFormats( 
rxNameList ); }
 
     ::std::map< sal_Int64, ItemFormat >::const_iterator end() const { return 
maMap.end(); }
     ::std::map< sal_Int64, ItemFormat >::const_iterator find(sal_Int64 nId) 
const
diff --git a/include/osl/diagnose.hxx b/include/osl/diagnose.hxx
index 7cd0c106a584..71d49f3d8a98 100644
--- a/include/osl/diagnose.hxx
+++ b/include/osl/diagnose.hxx
@@ -93,7 +93,7 @@ typedef ::std::unordered_set<void const*, VoidPtrHash > 
VoidPointerSet;
 
 struct ObjectRegistryData {
     ObjectRegistryData( ::std::type_info const& rTypeInfo )
-        : m_pName(rTypeInfo.name()), m_nCount(0), m_addresses(),
+        : m_pName(rTypeInfo.name()), m_nCount(0),
           m_bStoreAddresses(osl_detail_ObjectRegistry_storeAddresses(m_pName)) 
{}
 
     char const* const m_pName;
diff --git a/include/svx/ClassificationField.hxx 
b/include/svx/ClassificationField.hxx
index f932a665fde1..8588a3e024b8 100644
--- a/include/svx/ClassificationField.hxx
+++ b/include/svx/ClassificationField.hxx
@@ -67,8 +67,7 @@ public:
     OUString msIdentifier;
 
     ClassificationField(ClassificationType eType, OUString const & 
sDescription, OUString const & sFullClassName, OUString const & sIdentifier)
-        : SvxFieldData()
-        , meType(eType)
+        : meType(eType)
         , msDescription(sDescription)
         , msFullClassName(sFullClassName)
         , msIdentifier(sIdentifier)
diff --git a/include/svx/ShapeTypeHandler.hxx b/include/svx/ShapeTypeHandler.hxx
index 15992311dfc2..26d4aafd35f6 100644
--- a/include/svx/ShapeTypeHandler.hxx
+++ b/include/svx/ShapeTypeHandler.hxx
@@ -66,8 +66,7 @@ struct ShapeTypeDescriptor
     {}
     ShapeTypeDescriptor()
     :   mnShapeTypeId (-1),
-        msServiceName (),
-           maCreateFunction (nullptr)
+        maCreateFunction (nullptr)
     {}
 };
 
diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx
index 1b121a58f86e..0416026000a6 100644
--- a/include/svx/svdmark.hxx
+++ b/include/svx/svdmark.hxx
@@ -151,8 +151,7 @@ class SVXCORE_DLLPUBLIC SdrMarkList final
 
 public:
     SdrMarkList()
-    :   maList(),
-        mbPointNameOk(false),
+    :   mbPointNameOk(false),
         mbGluePointNameOk(false),
         mbNameOk(false),
         mbSorted(true)
@@ -160,7 +159,6 @@ public:
     }
 
     SdrMarkList(const SdrMarkList& rLst)
-    :   maList()
     {
         *this = rLst;
     }
diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index fc6936a95282..40268b3248fb 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -296,7 +296,7 @@ class SVXCORE_DLLPUBLIC SdrPageGridFrameList final
     SdrPageGridFrame* GetObject(sal_uInt16 i) const { return aList[i]; }
 
 public:
-    SdrPageGridFrameList(): aList()                                    {}
+    SdrPageGridFrameList()                                    {}
     ~SdrPageGridFrameList()                                            { 
Clear(); }
     void           Clear();
     sal_uInt16     GetCount() const                                    { 
return sal_uInt16(aList.size()); }
diff --git a/include/toolkit/controls/unocontrolbase.hxx 
b/include/toolkit/controls/unocontrolbase.hxx
index c152fa5516df..160510b1322c 100644
--- a/include/toolkit/controls/unocontrolbase.hxx
+++ b/include/toolkit/controls/unocontrolbase.hxx
@@ -32,9 +32,9 @@
 class UnoControlBase : public UnoControl
 {
 protected:
-    UnoControlBase() :UnoControl() {}
+    UnoControlBase() {}
 
-    bool                    ImplHasProperty( sal_uInt16 nProp );
+    bool                        ImplHasProperty( sal_uInt16 nProp );
     bool                    ImplHasProperty( const OUString& aPropertyName );
     void                        ImplSetPropertyValue( const OUString& 
aPropertyName, const css::uno::Any& aValue, bool bUpdateThis );
     void                        ImplSetPropertyValues( const 
css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< 
css::uno::Any >& aValues, bool bUpdateThis );
diff --git a/include/unotools/confignode.hxx b/include/unotools/confignode.hxx
index 6ed3cd7d7e69..f334aa149794 100644
--- a/include/unotools/confignode.hxx
+++ b/include/unotools/confignode.hxx
@@ -198,7 +198,7 @@ namespace utl
         /** default ctor<p/>
             The object constructed here is invalid (i.e. 
<method>isValid</method> will return sal_False).
         */
-        OConfigurationTreeRoot() :OConfigurationNode() { }
+        OConfigurationTreeRoot() {}
 
         /** creates a configuration tree for the given path in the given mode
         */
diff --git a/include/vcl/pdfextoutdevdata.hxx b/include/vcl/pdfextoutdevdata.hxx
index 05bfde12d2d4..39a8bbb30d56 100644
--- a/include/vcl/pdfextoutdevdata.hxx
+++ b/include/vcl/pdfextoutdevdata.hxx
@@ -55,7 +55,6 @@ struct PDFExtOutDevBookmarkEntry
     PDFExtOutDevBookmarkEntry()
         :nLinkId( -1 )
         ,nDestId( -1 )
-        ,aBookmark()
     {
     }
 };
diff --git a/include/vcl/pdfwriter.hxx b/include/vcl/pdfwriter.hxx
index 89776c815e87..b473db868821 100644
--- a/include/vcl/pdfwriter.hxx
+++ b/include/vcl/pdfwriter.hxx
@@ -635,7 +635,6 @@ The following structure describes the permissions used in 
PDF security
                 FirstPageLeft( false ),
                 InitialPage( 1 ),
                 OpenBookmarkLevels( -1 ),
-                Encryption(),
                 SignPDF( false ),
                 DPIx( 0 ),
                 DPIy( 0 ),
diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx
index 904e8211834c..f5bdce32696d 100644
--- a/jvmfwk/source/elements.cxx
+++ b/jvmfwk/source/elements.cxx
@@ -892,11 +892,7 @@ std::unique_ptr<JavaInfo> CNodeJavaInfo::makeJavaInfo() 
const
 
 
 MergedSettings::MergedSettings():
-    m_bEnabled(false),
-    m_sClassPath(),
-    m_vmParams(),
-    m_JRELocations(),
-    m_javaInfo()
+    m_bEnabled(false)
 {
     NodeJava settings(NodeJava::USER);
     settings.load();
diff --git a/l10ntools/source/po.cxx b/l10ntools/source/po.cxx
index 2c0b4f88b254..bc4611b539ea 100644
--- a/l10ntools/source/po.cxx
+++ b/l10ntools/source/po.cxx
@@ -116,14 +116,7 @@ namespace
 }
 
 GenPoEntry::GenPoEntry()
-    : m_sExtractCom()
-    , m_sReferences( std::vector<OString>() )
-    , m_sMsgCtxt( OString() )
-    , m_sMsgId( OString() )
-    , m_sMsgIdPlural( OString() )
-    , m_sMsgStr( OString() )
-    , m_sMsgStrPlural( std::vector<OString>() )
-    , m_bFuzzy( false )
+    : m_bFuzzy( false )
     , m_bCFormat( false )
     , m_bNull( false )
 {
@@ -479,14 +472,12 @@ PoHeader::~PoHeader()
 }
 
 PoOfstream::PoOfstream()
-    : m_aOutPut()
-    , m_bIsAfterHeader( false )
+    : m_bIsAfterHeader( false )
 {
 }
 
 PoOfstream::PoOfstream(const OString& rFileName, OpenMode aMode )
-    : m_aOutPut()
-    , m_bIsAfterHeader( false )
+    : m_bIsAfterHeader( false )
 {
     open( rFileName, aMode );
 }
@@ -552,14 +543,12 @@ bool lcl_CheckInputEntry(const GenPoEntry& rEntry)
 }
 
 PoIfstream::PoIfstream()
-    : m_aInPut()
-    , m_bEof( false )
+    : m_bEof( false )
 {
 }
 
 PoIfstream::PoIfstream(const OString& rFileName)
-    : m_aInPut()
-    , m_bEof( false )
+    : m_bEof( false )
 {
     open( rFileName );
 }
diff --git a/l10ntools/source/propmerge.cxx b/l10ntools/source/propmerge.cxx
index 3922d172398e..8c6da8e93b54 100644
--- a/l10ntools/source/propmerge.cxx
+++ b/l10ntools/source/propmerge.cxx
@@ -88,8 +88,7 @@ namespace
 PropParser::PropParser(
     const OString& rInputFile, const OString& rLang,
     const bool bMergeMode )
-    : m_vLines( std::vector<OString>() )
-    , m_sSource( rInputFile )
+    : m_sSource( rInputFile )
     , m_sLang( rLang )
     , m_bIsInitialized( false )
 {
diff --git a/l10ntools/source/xrmmerge.cxx b/l10ntools/source/xrmmerge.cxx
index a30feb000c3a..29efe12099b9 100644
--- a/l10ntools/source/xrmmerge.cxx
+++ b/l10ntools/source/xrmmerge.cxx
@@ -281,8 +281,7 @@ void XRMResParser::Error( const OString &rError )
 
 XRMResExport::XRMResExport(
     const OString &rOutputFile, const OString &rFilePath )
-                : XRMResParser(),
-                sPath( rFilePath )
+                : sPath( rFilePath )
 {
     pOutputStream.open( rOutputFile, PoOfstream::APP );
     if (!pOutputStream.isOpen())
@@ -353,8 +352,7 @@ void XRMResExport::EndOfText(
 XRMResMerge::XRMResMerge(
     const OString &rMergeSource, const OString &rOutputFile,
     const OString &rFilename )
-                : XRMResParser(),
-                sFilename( rFilename )
+                : sFilename( rFilename )
 {
     if (!rMergeSource.isEmpty() && sLanguage.equalsIgnoreAsciiCase("ALL"))
     {
diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx
index 70257b32d96c..09e814d97050 100644
--- a/linguistic/source/gciterator.cxx
+++ b/linguistic/source/gciterator.cxx
@@ -274,7 +274,6 @@ css::uno::Any SAL_CALL 
LngXStringKeyMap::getValueByIndex(::sal_Int32 nIndex)
 
 GrammarCheckingIterator::GrammarCheckingIterator() :
     m_bEnd( false ),
-    m_aCurCheckedDocId(),
     m_bGCServicesChecked( false ),
     m_nDocIdCounter( 0 ),
     m_thread(nullptr),
diff --git a/linguistic/source/lngprophelp.cxx 
b/linguistic/source/lngprophelp.cxx
index d6681c222228..93bc24e8c04a 100644
--- a/linguistic/source/lngprophelp.cxx
+++ b/linguistic/source/lngprophelp.cxx
@@ -61,7 +61,6 @@ PropertyChgHelper::PropertyChgHelper(
         const Reference< XInterface > &rxSource,
         Reference< XLinguProperties > const &rxPropSet,
         int nAllowedEvents ) :
-    PropertyChgHelperBase(),
     aPropNames          (nCHCount),
     xMyEvtObj           (rxSource),
     aLngSvcEvtListeners (GetLinguMutex()),
diff --git a/lotuswordpro/source/filter/lwp9reader.cxx 
b/lotuswordpro/source/filter/lwp9reader.cxx
index c5b24a7edf09..39c753f5ecd2 100644
--- a/lotuswordpro/source/filter/lwp9reader.cxx
+++ b/lotuswordpro/source/filter/lwp9reader.cxx
@@ -67,7 +67,6 @@ Lwp9Reader::Lwp9Reader(LwpSvStream* pInputStream, IXFStream* 
pStream)
     : m_pDocStream(pInputStream)
     , m_pStream(pStream)
     , m_pObjMgr(nullptr)
-    , m_LwpFileHdr()
 {
 }
 
diff --git a/lotuswordpro/source/filter/lwpfilehdr.cxx 
b/lotuswordpro/source/filter/lwpfilehdr.cxx
index e0cb0bc5d0cc..f5c7ae89cebd 100644
--- a/lotuswordpro/source/filter/lwpfilehdr.cxx
+++ b/lotuswordpro/source/filter/lwpfilehdr.cxx
@@ -64,7 +64,6 @@ LwpFileHeader::LwpFileHeader()
     , m_nAppReleaseNo(0)
     , m_nRequiredAppRevision(0)
     , m_nRequiredFileRevision(0)
-    , m_cDocumentID()
     , m_nRootIndexOffset(0)
 {
 }
diff --git a/lotuswordpro/source/filter/lwpobjhdr.cxx 
b/lotuswordpro/source/filter/lwpobjhdr.cxx
index 37e3e077eaa3..d8474525e9f9 100644
--- a/lotuswordpro/source/filter/lwpobjhdr.cxx
+++ b/lotuswordpro/source/filter/lwpobjhdr.cxx
@@ -64,7 +64,6 @@
 
 LwpObjectHeader::LwpObjectHeader()
     : m_nTag(0)
-    , m_ID()
     , m_nSize(0)
     , m_bCompressed(false)
 {
diff --git a/oox/source/core/relations.cxx b/oox/source/core/relations.cxx
index 986ffb1e38d0..9b29f20a1124 100644
--- a/oox/source/core/relations.cxx
+++ b/oox/source/core/relations.cxx
@@ -53,8 +53,7 @@ OUString 
createOfficeDocRelationTypeStrict(std::u16string_view rType)
 }
 
 Relations::Relations( const OUString& rFragmentPath )
-    : maMap()
-    , maFragmentPath( rFragmentPath )
+    : maFragmentPath( rFragmentPath )
 {
 }
 
diff --git a/oox/source/crypto/CryptTools.cxx b/oox/source/crypto/CryptTools.cxx
index 6baf1f98ae98..ee68a8a50815 100644
--- a/oox/source/crypto/CryptTools.cxx
+++ b/oox/source/crypto/CryptTools.cxx
@@ -349,7 +349,6 @@ Crypto::~Crypto()
 // DECRYPT
 
 Decrypt::Decrypt(std::vector<sal_uInt8>& key, std::vector<sal_uInt8>& iv, 
CryptoType type)
-    : Crypto()
 {
 #if USE_TLS_OPENSSL + USE_TLS_NSS == 0
     (void)key;
@@ -403,7 +402,6 @@ sal_uInt32 Decrypt::aes128ecb(std::vector<sal_uInt8>& 
output, std::vector<sal_uI
 // ENCRYPT
 
 Encrypt::Encrypt(std::vector<sal_uInt8>& key, std::vector<sal_uInt8>& iv, 
CryptoType type)
-    : Crypto()
 {
 #if USE_TLS_OPENSSL + USE_TLS_NSS == 0
     (void)key;
@@ -460,8 +458,7 @@ sal_Int32 getSizeForHashType(CryptoHashType eType)
 } // end anonymous namespace
 
 CryptoHash::CryptoHash(std::vector<sal_uInt8>& rKey, CryptoHashType eType)
-    : Crypto()
-    , mnHashSize(getSizeForHashType(eType))
+    : mnHashSize(getSizeForHashType(eType))
 {
 #if USE_TLS_OPENSSL
     mpImpl->setupCryptoHashContext(rKey, eType);
diff --git a/oox/source/drawingml/diagram/diagramfragmenthandler.cxx 
b/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
index fc2b7e8d80b8..16c8de50d6f5 100644
--- a/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
+++ b/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
@@ -101,7 +101,6 @@ 
DiagramQStylesFragmentHandler::DiagramQStylesFragmentHandler( XmlFilterBase& rFi
                                                               const OUString& 
rFragmentPath,
                                                               
DiagramQStyleMap& rStylesMap ) :
     FragmentHandler2( rFilter, rFragmentPath ),
-    maStyleName(),
     maStyleEntry(),
     mrStylesMap( rStylesMap )
 {}
@@ -173,7 +172,6 @@ ColorFragmentHandler::ColorFragmentHandler( 
::oox::core::XmlFilterBase& rFilter,
                                             const OUString& rFragmentPath,
                                             DiagramColorMap& rColorsMap ) :
     FragmentHandler2(rFilter,rFragmentPath),
-    maColorName(),
     maColorEntry(),
     mrColorsMap(rColorsMap)
 {}
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index fe38fa6b371d..abb6115b08c0 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -144,8 +144,7 @@ Shape::Shape( const char* pServiceName, bool bDefaultHeight 
)
 }
 
 Shape::Shape( const ShapePtr& pSourceShape )
-: maChildren()
-, mpTextBody(pSourceShape->mpTextBody)
+: mpTextBody(pSourceShape->mpTextBody)
 , mpLinePropertiesPtr( pSourceShape->mpLinePropertiesPtr )
 , mpShapeRefLinePropPtr( pSourceShape->mpShapeRefLinePropPtr )
 , mpFillPropertiesPtr( pSourceShape->mpFillPropertiesPtr )
@@ -158,7 +157,6 @@ Shape::Shape( const ShapePtr& pSourceShape )
 , mpShapeRefEffectPropPtr(pSourceShape->mpShapeRefEffectPropPtr)
 , maShapeProperties( pSourceShape->maShapeProperties )
 , mpMasterTextListStyle( pSourceShape->mpMasterTextListStyle )
-, mxShape()
 , msServiceName( pSourceShape->msServiceName )
 , msName( pSourceShape->msName )
 , msInternalName( pSourceShape->msInternalName )
@@ -179,7 +177,6 @@ Shape::Shape( const ShapePtr& pSourceShape )
 , mbLockedCanvas( pSourceShape->mbLockedCanvas )
 , mbWps( pSourceShape->mbWps )
 , mbTextBox( pSourceShape->mbTextBox )
-, maLinkedTxbxAttr()
 , mbHasLinkedTxbx(false)
 , maDiagramDoms( pSourceShape->maDiagramDoms )
 , mnZOrder(pSourceShape->mnZOrder)
diff --git a/oox/source/drawingml/textbodyproperties.cxx 
b/oox/source/drawingml/textbodyproperties.cxx
index 7143f059a006..2ffa7de1085f 100644
--- a/oox/source/drawingml/textbodyproperties.cxx
+++ b/oox/source/drawingml/textbodyproperties.cxx
@@ -31,7 +31,6 @@ namespace oox::drawingml {
 TextBodyProperties::TextBodyProperties()
     : mbAnchorCtr(false)
     , meVA( TextVerticalAdjust_TOP )
-    , msPrst()
 {
 }
 

Reply via email to