sw/qa/extras/layout/data/tdf152142-donotmirror.fodt |  168 ++++++++++++++++++++
 sw/qa/extras/layout/layout3.cxx                     |   31 +++
 sw/source/core/doc/textboxhelper.cxx                |   15 +
 3 files changed, 212 insertions(+), 2 deletions(-)

New commits:
commit 1d3ba3ba5dfd55dccc71b671645dced82795b31d
Author:     Jonathan Clark <jonat...@libreoffice.org>
AuthorDate: Fri Sep 6 02:15:44 2024 -0600
Commit:     Jonathan Clark <jonat...@libreoffice.org>
CommitDate: Fri Sep 6 11:54:02 2024 +0200

    tdf#152142 sw: fix RTL as-char textbox compat flag special case
    
    Fixes an issue causing incorrect textbox positions when the containing
    shape is anchored 'as character' inside RTL text, with the
    DoNotMirrorRtlDrawObjs compatibility flag set.
    
    Change-Id: I58cade8b91925dda188a1ef8fd078ccfdc3fea56
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172938
    Tested-by: Jenkins
    Reviewed-by: Jonathan Clark <jonat...@libreoffice.org>

diff --git a/sw/qa/extras/layout/data/tdf152142-donotmirror.fodt 
b/sw/qa/extras/layout/data/tdf152142-donotmirror.fodt
new file mode 100644
index 000000000000..f29dc521041f
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf152142-donotmirror.fodt
@@ -0,0 +1,168 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:c
 alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:
 meta:1.0" 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ 
<office:meta><meta:creation-date>2022-11-20T16:16:12.994464884</meta:creation-date><dc:date>2024-08-28T05:35:29.701530545</dc:date><meta:editing-duration>PT2M38S</meta:editing-duration><meta:editing-cycles>4</meta:editing-cycles><meta:generator>LibreOfficeDev/25.2.0.0.alpha0$Linux_X86_64
 
LibreOffice_project/07bd24243c490bc3012a0897b930ee18f6164be3</meta:generator><meta:document-statistic
 meta:table-count="0" meta:image-count="0" meta:object-count="0" 
meta:page-count="1" meta:paragraph-count="2" meta:word-count="2" 
meta:character-count="6" meta:non-whitespace-character-count="6"/></office:meta>
+ <office:settings>
+  <config:config-item-set config:name="ooo:configuration-settings">
+   <config:config-item config:name="DoNotMirrorRtlDrawObjs" 
config:type="boolean">true</config:config-item>
+  </config:config-item-set>
+ </office:settings>
+ <office:font-face-decls>
+  <style:font-face style:name="B Nazanin" svg:font-family="'B Nazanin'"/>
+  <style:font-face style:name="B Zar" svg:font-family="'B Zar'"/>
+  <style:font-face style:name="Calibri1" svg:font-family="Calibri" 
style:font-family-generic="swiss"/>
+  <style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" 
style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Sans Arabic" svg:font-family="'Noto Sans 
Arabic'" style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Tahoma" svg:font-family="Tahoma" 
style:font-family-generic="system" style:font-pitch="variable"/>
+  </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" 
draw:shadow-offset-x="0.1181in" draw:shadow-offset-y="0.1181in" 
draw:start-line-spacing-horizontal="0.1114in" 
draw:start-line-spacing-vertical="0.1114in" 
draw:end-line-spacing-horizontal="0.1114in" 
draw:end-line-spacing-vertical="0.1114in" style:writing-mode="lr-tb" 
style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0in" 
style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Calibri1" fo:font-size="12pt" 
fo:language="en" fo:country="US" style:letter-kerning="true" 
style:font-name-asian="Calibri1" style:font-size-asian="10.5pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Tahoma" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:orphans="2" fo:widows="2" 
fo:hyphenation-ladder-count="no-limit" fo:hyphenation-keep="auto" 
loext:hyphenation-keep-type="column" style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="hanging" style:line-break="strict" 
style:tab-stop-distance="0.4925in" style:writing-mode="page"/>
+   <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Calibri1" fo:font-size="12pt" 
fo:language="en" fo:country="US" style:letter-kerning="true" 
style:font-name-asian="Calibri1" style:font-size-asian="10.5pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Tahoma" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" 
fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" 
loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" 
loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" 
style:class="text"/>
+  <style:style style:name="Frame_20_contents" style:display-name="Frame 
contents" style:family="paragraph" style:parent-style-name="Standard" 
style:class="extra"/>
+  <style:style style:name="Frame" style:family="graphic">
+   <style:graphic-properties text:anchor-type="paragraph" svg:x="0in" 
svg:y="0in" fo:margin-left="0.0791in" fo:margin-right="0.0791in" 
fo:margin-top="0.0791in" fo:margin-bottom="0.0791in" style:wrap="parallel" 
style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" 
style:vertical-pos="top" style:vertical-rel="paragraph-content" 
style:horizontal-pos="center" style:horizontal-rel="paragraph-content" 
fo:background-color="transparent" draw:fill="none" draw:fill-color="#729fcf" 
fo:padding="0.0591in" fo:border="0.06pt solid #000000"/>
+  </style:style>
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" loext:num-list-format="%1%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" loext:num-list-format="%2%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" loext:num-list-format="%3%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" loext:num-list-format="%4%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" loext:num-list-format="%5%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" loext:num-list-format="%6%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" loext:num-list-format="%7%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" loext:num-list-format="%8%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" loext:num-list-format="%9%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" loext:num-list-format="%10%" 
style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:notes-configuration text:note-class="footnote" style:num-format="1" 
text:start-value="0" text:footnotes-position="page" 
text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" 
text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" 
text:offset="0.1965in" style:num-format="1" text:number-position="left" 
text:increment="5"/>
+  </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:paragraph-properties fo:text-align="center" 
style:justify-single-word="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:font-name="Noto Sans" fo:font-size="12pt" 
style:font-size-asian="12pt" style:font-name-complex="B Zar" 
style:font-size-complex="12pt" style:language-complex="fa" 
style:country-complex="IR"/>
+  </style:style>
+  <style:style style:name="P2" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:paragraph-properties fo:text-align="end" 
style:justify-single-word="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:font-name="Noto Sans"/>
+  </style:style>
+  <style:style style:name="P3" style:family="paragraph" 
style:parent-style-name="Frame_20_contents">
+   <style:paragraph-properties fo:text-align="end" 
style:justify-single-word="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:font-name="Noto Sans"/>
+  </style:style>
+  <style:style style:name="P4" style:family="paragraph">
+   <loext:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
+   <style:paragraph-properties fo:text-align="start"/>
+   <style:text-properties fo:font-size="18pt"/>
+  </style:style>
+  <style:style style:name="P5" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:paragraph-properties fo:text-align="end" 
style:justify-single-word="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:font-name="Noto Sans" 
style:font-name-complex="B Zar" style:language-complex="fa" 
style:country-complex="IR"/>
+  </style:style>
+  <style:style style:name="P6" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:paragraph-properties fo:text-align="end" 
style:justify-single-word="false" style:writing-mode="rl-tb"/>
+   <style:text-properties style:font-name="Noto Sans" fo:font-weight="bold" 
style:font-weight-asian="bold" style:font-name-complex="B Nazanin" 
style:language-complex="fa" style:country-complex="IR" 
style:font-weight-complex="bold"/>
+  </style:style>
+  <style:style style:name="T1" style:family="text">
+   <style:text-properties fo:font-size="80pt" style:font-size-asian="80pt" 
style:font-size-complex="80pt"/>
+  </style:style>
+  <style:style style:name="T2" style:family="text">
+   <style:text-properties fo:font-size="80pt" fo:font-weight="normal" 
style:font-size-asian="80pt" style:font-weight-asian="normal" 
style:font-name-complex="Noto Sans Arabic" style:font-size-complex="80pt" 
style:font-weight-complex="normal"/>
+  </style:style>
+  <style:style style:name="gr1" style:family="graphic" 
style:parent-style-name="Frame">
+   <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.0102in" 
svg:stroke-color="#000000" draw:stroke-linejoin="miter" draw:fill="solid" 
draw:fill-color="#ffffff" draw:textarea-vertical-align="top" 
draw:auto-grow-height="false" fo:min-height="3.9728in" fo:min-width="3.548in" 
fo:padding-top="0.05in" fo:padding-bottom="0.05in" fo:padding-left="0.1in" 
fo:padding-right="0.1in" fo:wrap-option="wrap" loext:decorative="false" 
fo:margin-left="0in" fo:margin-right="0.0217in" fo:margin-top="0in" 
fo:margin-bottom="0.0118in" style:run-through="foreground" 
style:vertical-pos="top" style:vertical-rel="baseline" 
style:horizontal-pos="from-left" style:horizontal-rel="paragraph" 
draw:wrap-influence-on-position="once-concurrent" loext:allow-overlap="true" 
style:flow-with-text="false"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="8.5in" fo:page-height="11in" 
style:num-format="1" style:print-orientation="portrait" 
fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.7874in" 
fo:margin-right="0.7874in" style:writing-mode="lr-tb" 
style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" 
style:layout-grid-base-height="0.278in" style:layout-grid-ruby-height="0.139in" 
style:layout-grid-mode="none" style:layout-grid-ruby-below="false" 
style:layout-grid-print="false" style:layout-grid-display="false" 
style:footnote-max-height="0in" loext:margin-gutter="0in">
+    <style:footnote-sep style:width="0.0071in" 
style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" 
style:line-style="solid" style:adjustment="left" style:rel-width="25%" 
style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style/>
+   <style:footer-style/>
+  </style:page-layout>
+  <style:style style:name="dp1" style:family="drawing-page">
+   <style:drawing-page-properties draw:background-size="full"/>
+  </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Standard" style:page-layout-name="pm1" 
draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+  <office:text>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" 
text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:p text:style-name="P1"/>
+   <text:p text:style-name="P2"><text:span 
text:style-name="T1">BBB</text:span><draw:custom-shape 
text:anchor-type="as-char" draw:z-index="0" draw:name="Shape1" 
draw:style-name="gr1" draw:text-style-name="P4" svg:width="3.7476in" 
svg:height="4.0724in">
+     <text:p text:style-name="P3"><text:span 
text:style-name="T2">AAA</text:span></text:p>
+     <draw:enhanced-geometry draw:mirror-horizontal="false" 
draw:mirror-vertical="false" svg:viewBox="0 0 0 0" draw:text-areas="0 0 ?f3 
?f2" draw:type="ooxml-rect" draw:enhanced-path="M 0 0 L ?f3 0 ?f3 ?f2 0 ?f2 Z 
N">
+      <draw:equation draw:name="f0" draw:formula="logwidth/2"/>
+      <draw:equation draw:name="f1" draw:formula="logheight/2"/>
+      <draw:equation draw:name="f2" draw:formula="logheight"/>
+      <draw:equation draw:name="f3" draw:formula="logwidth"/>
+     </draw:enhanced-geometry>
+    </draw:custom-shape></text:p>
+   <text:p text:style-name="P5"/>
+   <text:p text:style-name="P6"/>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/layout/layout3.cxx b/sw/qa/extras/layout/layout3.cxx
index 88d20741aeb0..dcc3c325a9ce 100644
--- a/sw/qa/extras/layout/layout3.cxx
+++ b/sw/qa/extras/layout/layout3.cxx
@@ -3559,6 +3559,37 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf152142)
     CPPUNIT_ASSERT_LESS(nShapeEnd, nTextBoxEnd);
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf152142DoNotMirrorRtlDrawObjs)
+{
+    // Regression test for textbox positioning when anchored as-char in RTL 
context, with the
+    // DoNotMirrorRtlDrawObjs compatibility flag set.
+    createSwDoc("tdf152142-donotmirror.fodt");
+    auto pXmlDoc = parseLayoutDump();
+
+    assertXPath(pXmlDoc, "//page"_ostr, 1);
+
+    SwTwips nTextBoxBegin
+        = getXPath(pXmlDoc, 
"/root/page/body/txt[2]/anchored/fly/txt/infos/bounds"_ostr,
+                   "left"_ostr)
+              .toInt32();
+    SwTwips nTextBoxEnd
+        = getXPath(pXmlDoc, 
"/root/page/body/txt[2]/anchored/fly/txt/infos/bounds"_ostr,
+                   "right"_ostr)
+              .toInt32();
+
+    SwTwips nShapeBegin
+        = getXPath(pXmlDoc, 
"/root/page/body/txt[2]/anchored/SwAnchoredDrawObject/bounds"_ostr,
+                   "left"_ostr)
+              .toInt32();
+    SwTwips nShapeEnd
+        = getXPath(pXmlDoc, 
"/root/page/body/txt[2]/anchored/SwAnchoredDrawObject/bounds"_ostr,
+                   "right"_ostr)
+              .toInt32();
+
+    CPPUNIT_ASSERT_GREATER(nShapeBegin, nTextBoxBegin);
+    CPPUNIT_ASSERT_LESS(nShapeEnd, nTextBoxEnd);
+}
+
 } // end of anonymous namespace
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/core/doc/textboxhelper.cxx 
b/sw/source/core/doc/textboxhelper.cxx
index ebb380ae6d39..c242aeda532e 100644
--- a/sw/source/core/doc/textboxhelper.cxx
+++ b/sw/source/core/doc/textboxhelper.cxx
@@ -1368,8 +1368,19 @@ bool 
SwTextBoxHelper::doTextBoxPositioning(SwFrameFormat* pShape, SdrObject* pOb
             if (pShape->GetLayoutDir() == SwFrameFormat::HORI_R2L)
             {
                 auto nRightSpace = pShape->GetLRSpace().GetRight();
-                aNewHOri.SetPos(aRect.Right() + nRightSpace
-                                + (bIsGroupObj ? pObj->GetRelativePos().getX() 
: 0));
+
+                const bool bMSOLayout = 
pFormat->getIDocumentSettingAccess().get(
+                    DocumentSettingId::DO_NOT_MIRROR_RTL_DRAW_OBJS);
+                if (bMSOLayout)
+                {
+                    aNewHOri.SetPos(-aRect.Right() + nRightSpace
+                                    + (bIsGroupObj ? 
pObj->GetRelativePos().getX() : 0));
+                }
+                else
+                {
+                    aNewHOri.SetPos(aRect.Right() + nRightSpace
+                                    + (bIsGroupObj ? 
pObj->GetRelativePos().getX() : 0));
+                }
             }
             else
             {

Reply via email to