|
Return-Path: <pieter@masereeuw.nl>
|
|
Received: from mi016.mc1.hosteurope.de ([80.237.138.239]) by wp245.webpack.hosteurope.de running ExIM with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) id 1cQc5O-0005za-C4; Mon, 09 Jan 2017 16:42:14 +0100
|
|
Received: from lb3-smtp-cloud3.xs4all.net ([194.109.24.30]) by mx0.webpack.hosteurope.de (mi016.mc1.hosteurope.de) with esmtps (TLSv1:DHE-RSA-AES128-SHA:128) id 1cQc5L-0001PL-Ir for dropbox+saxonica+f38e+saxon-js@plan.io; Mon, 09 Jan 2017 16:42:14 +0100
|
|
Received: from [192.168.80.100] ([83.161.170.16]) by smtp-cloud3.xs4all.net with ESMTP id WFi01u00Q0MaXdv01Fi4bl; Mon, 09 Jan 2017 16:42:08 +0100
|
|
Date: Mon, 09 Jan 2017 16:42:00 +0100
|
|
From: Pieter Masereeuw <pieter@masereeuw.nl>
|
|
To: Saxonica Developer Community <dropbox+saxonica+f38e+saxon-js@plan.io>
|
|
Message-ID: <1483976520.2872.5.camel@masereeuw.nl>
|
|
In-Reply-To: <redmine.journal-7799.20170109122904.2decde23baf0e6c8@plan.io>
|
|
References: <redmine.issue-3098.20170109093045@plan.io>
|
|
<redmine.journal-7799.20170109122904.2decde23baf0e6c8@plan.io>
|
|
Subject: Re: [Saxon-JS - Bug #3098] (In Progress) Supplied value "..." is not
|
|
a valid xs:base64
|
|
Mime-Version: 1.0
|
|
Content-Type: multipart/alternative;
|
|
boundary="=-i/+0gHEupJUj4SVuh7PB"
|
|
Content-Transfer-Encoding: 7bit
|
|
Delivery-date: Mon, 09 Jan 2017 16:42:14 +0100
|
|
X-Mailer: Evolution 3.18.5.2-0ubuntu3
|
|
X-HE-Virus-Scanned: Yes
|
|
X-HE-Spam-Level: ++
|
|
X-HE-Spam-Score: 2.4
|
|
X-HE-Spam-Report: Content analysis details: (2.4 points) pts rule name
|
|
description ---- ----------------------
|
|
-------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL:
|
|
Sender listed at http://www.dnswl.org/, low trust [194.109.24.30 listed in
|
|
list.dnswl.org] 0.5 RCVD_IN_SORBS_SPAM RBL: SORBS: sender is a spam source
|
|
[194.109.24.30 listed in dnsbl.sorbs.net] 2.5 RCVD_IN_SORBS_HTTP RBL: SORBS:
|
|
sender is open HTTP proxy server 0.1 HTML_MESSAGE BODY: HTML included in
|
|
message
|
|
Envelope-to: dropbox+saxonica+f38e+saxon-js@plan.io
|
|
|
|
|
|
--=-i/+0gHEupJUj4SVuh7PB
|
|
Content-Type: text/plain;
|
|
charset=UTF-8
|
|
Content-Transfer-Encoding: quoted-printable
|
|
|
|
Hi Debbie,
|
|
I am glad that I also copied the source files to the site then. If I
|
|
can be of any other help, please let me know. I certainly like the
|
|
Saxon-JS product; I think it will offer a good replacement for many web
|
|
applications whose source code is now overly complex.
|
|
Best,
|
|
Pieter
|
|
On Mon, 2017-01-09 at 13:29 +0100, Saxonica Developer Communi;ty wrote:
|
|
> --- In your reply, please do not write below this line ---
|
|
> Issue #3098 has been updated by Debbie Lockett.=C2=A0
|
|
> Status changed from New to In Progress
|
|
> Assignee set to Debbie Lockett
|
|
> Found in version changed from Saxon-JS-beta-0.9.1.1.zip to 0.9.1=C2=A0
|
|
> =C2=A0Hi Pieter, Thanks for letting us know about the bug. I have manag=
|
|
ed
|
|
> to obtain the source code via the link to the demo that you provided.
|
|
> I shall investigate. I like the demo! We are always interested in
|
|
> hearing from people who are using Saxon-JS. Any other feedback you
|
|
> have would be most welcome. Debbie=C2=A0=C2=A0Bug #3098: Supplied value=
|
|
"..."
|
|
> is not a valid xs:base64=C2=A0
|
|
> Author: Pieter Masereeuw
|
|
> Status: In Progress
|
|
> Priority: Low
|
|
> Assignee: Debbie Lockett
|
|
> Category:
|
|
> Sprint/Milestone:
|
|
> Applies to branch:
|
|
> Found in version: 0.9.1
|
|
> Fixed in version:
|
|
> Company:
|
|
> Contact person:
|
|
> Additional contact persons:=C2=A0
|
|
> I hope that I am right that I have found a bug in the runtime of
|
|
> Saxon-JS-beta-0.9.1.1. I have an , the first test
|
|
> compares a string parameter with a string literal. Although the
|
|
> parameter can hardly be anything else but an xs:string (also by the
|
|
> as=3D clause of its definition), I get the error "Supplied value "..."
|
|
> is not a valid xs:base64" in the javascript console of Firefox and
|
|
> Chrome. If I cast the parameter by wrapping it in xs:string(), the
|
|
> error remains. But if I concat an empty string before doing the
|
|
> compare, all goes well, even when the parameter value matches another
|
|
> inside the same -stanza.=C2=A0=C2=A0=C2=A0 Maybe
|
|
> useful to remark that part of its life time, the parameter is a
|
|
> tunnel parameter. You can watch the working version at http://www.mas
|
|
> ereeuw.nl/tangram. I'll be happy to supply source code if that helps.
|
|
> Here is an abbridged snipped of my code: @
|
|
> next-figure">
|
|
> =
|
|
|
|
> required=3D"yes"/>=C2=A0=C2=A0<xsl:choose>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
<!-- Intended line was: <xsl:when test=3D"$next-
|
|
> figure eq 'transparant-tangram'"> but for some reason this fails
|
|
> with an error in the Javascript console:
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0XError: Supplied value "sitting-cat" is not a val=
|
|
id
|
|
> xs:base64 at file:/home/pieter/saxonjs-
|
|
> experimenten/tangram/tangram4saxonjs.xslt#227=C2=A0=C2=A0=C2=A0 When we=
|
|
|
|
> change the test as shown (concatening an empty string, then compare),
|
|
> all goes well, even if the other comparable tests are
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0left as they are.
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
-->
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
<xsl:when test=3D"concat($next-figure, '') eq
|
|
> 'transparant-tangram'">
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0<xsl:call-template name=3D"do-transparant-
|
|
> tangram">
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<xsl:with-param name=3D"t=
|
|
ransforms"
|
|
> select=3D"$tangram-transforms"/>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0</xsl:call-template>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
</xsl:when> <xsl:when test=3D"$next-figure eq
|
|
> 'blue-tangram'">
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0<xsl:call-template name=3D"do-blue-tangram">=
|
|
;
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<xsl:with-param name=3D"t=
|
|
ransforms"
|
|
> select=3D"$tangram-transforms"/>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0</xsl:call-template>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
</xsl:when>=C2=A0=C2=A0<!-- ... -->
|
|
> <xsl:otherwise>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
=C2=A0=C2=A0=C2=A0=C2=A0<xsl:message>Don't know how to deal with figure
|
|
> "<xsl:value-of select=3D"$next-figure"/>".</xsl:message>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
|
|
</xsl:otherwise>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</xsl:choose>
|
|
> =C2=A0=C2=A0=C2=A0=C2=A0</xsl:template>@=C2=A0
|
|
> =C2=A0 You have received this notification because you have either
|
|
> subscribed to or are involved in a project on Saxonica Developer
|
|
> Community site.
|
|
> To change your notification preferences, please click here: https://s
|
|
> axonica.plan.io/my/account?tour=3Dmail_preferences> class=3D"Apple-tab=
|
|
-
|
|
> span" style=3D"white-space:pre"> =
|
|
|
|
> =C2=A0
|
|
> This notification was cheerfully delivered by =
|
|
|
|
> =
|
|
|
|
--=-i/+0gHEupJUj4SVuh7PB
|
|
Content-Type: text/html;
|
|
charset=utf-8
|
|
Content-Transfer-Encoding: quoted-printable
|
|
|
|
<html><head>
|
|
<!--[if !mso]><!-- -->
|
|
<link href=3D"https://assets.plan.io/stylesheets/fonts.css" rel=3D"styles=
|
|
heet" type=3D"text/css">
|
|
<!--<![endif]-->
|
|
|
|
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF-8">=
|
|
|
|
<style>a:link{color:#0088b7}
|
|
a:visited{color:#0088b7}
|
|
a:hover{color:#0088b7}
|
|
a:active{color:#0088b7}</style>
|
|
</head>
|
|
<body><div>Hi Debbie,</div><div><br></div><div>I am glad that I also copi=
|
|
ed the source files to the site then. If I can be of any other help, plea=
|
|
se let me know. I certainly like the Saxon-JS product; I think it will of=
|
|
fer a good replacement for many web applications whose source code is now=
|
|
overly complex.</div><div><br></div><div>Best,</div><div><br></div><div>=
|
|
Pieter</div><div>On Mon, 2017-01-09 at 13:29 +0100, Saxonica Developer Co=
|
|
mmuni;ty wrote:</div><blockquote type=3D"cite">
|
|
<table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" style=3D"border=
|
|
-spacing:0;border-collapse:collapse;width:100%">
|
|
<tbody><tr><td class=3D"header" style=3D"text-align:center;width:100%;fon=
|
|
t-family:MarketWeb, Helvetica, Arial, sans-serif;font-size:0.8em;color:#D=
|
|
7D7D7"><p>--- In your reply, please do not write below this line ---</p><=
|
|
/td></tr>
|
|
<tr><td>Issue #3098 has been updated by Debbie Lockett.
|
|
|
|
<ul>
|
|
<li>
|
|
<strong>Status</strong> changed from <i>New</i> to <i>In Progress</i>
|
|
</li>
|
|
<li>
|
|
<strong>Assignee</strong> set to <i>Debbie Lockett</i>
|
|
</li>
|
|
<li>
|
|
<strong>Found in version</strong> changed from <i>Saxon-JS-beta-0.9.1.1.z=
|
|
ip</i> to <i>0.9.1</i>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>Hi Pieter,</p>
|
|
|
|
|
|
<p>Thanks for letting us know about the bug. I have managed to obtain th=
|
|
e source code via the link to the demo that you provided. I shall investi=
|
|
gate.</p>
|
|
|
|
|
|
<p>I like the demo! We are always interested in hearing from people who =
|
|
are using Saxon-JS. Any other feedback you have would be most welcome.</p=
|
|
>
|
|
|
|
|
|
<p>Debbie</p>
|
|
<hr style=3D"width:100%;height:1px;background:#ccc;border:0;margin:1.2em =
|
|
0">
|
|
<h1 style=3D"font-family:"ProximaNova-Bold", Helvetica, Arial, =
|
|
sans-serif;font-weight:normal;margin:0px;font-size:1.3em;line-height:1.4e=
|
|
m"><a href=3D"https://saxonica.plan.io/issues/3098?pn=3D1#change-7799" st=
|
|
yle=3D"color:#0088b7;text-decoration:none">Bug #3098: Supplied value "...=
|
|
" is not a valid xs:base64</a></h1>
|
|
|
|
<ul>
|
|
<li>Author: Pieter Masereeuw</li>
|
|
<li>Status: In Progress</li>
|
|
<li>Priority: Low</li>
|
|
<li>Assignee: Debbie Lockett</li>
|
|
<li>Category: </li>
|
|
<li>Sprint/Milestone: </li>
|
|
<li>Applies to branch: </li>
|
|
<li>Found in version: 0.9.1</li>
|
|
<li>Fixed in version: </li>
|
|
<li>Company: </li>
|
|
<li>Contact person: </li>
|
|
<li>Additional contact persons: </li>
|
|
</ul>
|
|
|
|
<p>I hope that I am right that I have found a bug in the runtime of Saxon=
|
|
-JS-beta-0.9.1.1. I have an <xsl:choose>, the first test compares a=
|
|
string parameter with a string literal. Although the parameter can hardl=
|
|
y be anything else but an xs:string (also by the as=3D clause of its defi=
|
|
nition), I get the error "Supplied value "..." is not a valid xs:base64" =
|
|
in the javascript console of Firefox and Chrome. If I cast the parameter =
|
|
by wrapping it in xs:string(), the error remains. But if I concat an empt=
|
|
y string before doing the compare, all goes well, even when the parameter=
|
|
value matches another <xsl:when> inside the same <xsl:choose>=
|
|
;-stanza.</p>
|
|
|
|
|
|
<p>Maybe useful to remark that part of its life time, the parameter is a=
|
|
tunnel parameter.</p>
|
|
|
|
|
|
<p>You can watch the working version at <a href=3D"http://www.masereeuw.=
|
|
nl/tangram" style=3D"color:#0088b7">http://www.masereeuw.nl/tangram</a>. =
|
|
I'll be happy to supply source code if that helps.</p>
|
|
|
|
|
|
<p>Here is an abbridged snipped of my code:</p>
|
|
|
|
|
|
<p>@<xsl:template name=3D"do-next-figure"><br> <xsl:para=
|
|
m name=3D"next-figure" as=3D"xs:string" required=3D"yes"/></p>
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">&lt;xsl:choose&gt;<br> =
|
|
&lt;!-- Intended line was:</code></pre>
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">&lt;xsl:when test=3D"$next-figure eq '=
|
|
transparant-tangram'"&gt;</code></pre>
|
|
|
|
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">but for some reason this fails with an err=
|
|
or in the Javascript console:<br> XError: Supplied value "=
|
|
sitting-cat" is not a valid xs:base64 at file:/home/pieter/saxonjs-experi=
|
|
menten/tangram/tangram4saxonjs.xslt#227</code></pre>
|
|
|
|
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">When we change the test as shown (concaten=
|
|
ing an empty string, then compare), all goes well, even if the other comp=
|
|
arable tests are<br> left as they are.<br> --&g=
|
|
t;<br> &lt;xsl:when test=3D"concat($next-figure, '') eq 't=
|
|
ransparant-tangram'"&gt;<br> &lt;xsl:call-template=
|
|
name=3D"do-transparant-tangram"&gt;<br> &lt;x=
|
|
sl:with-param name=3D"transforms" select=3D"$tangram-transforms"/&gt;=
|
|
<br> &lt;/xsl:call-template&gt;<br> &am=
|
|
p;lt;/xsl:when&gt;</code></pre>
|
|
|
|
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">&lt;xsl:when test=3D"$next-figure eq '=
|
|
blue-tangram'"&gt;<br> &lt;xsl:call-template name=3D=
|
|
"do-blue-tangram"&gt;<br> &lt;xsl:with-param n=
|
|
ame=3D"transforms" select=3D"$tangram-transforms"/&gt;<br> =
|
|
&lt;/xsl:call-template&gt;<br> &lt;/xsl:when&=
|
|
amp;gt;</code></pre>
|
|
|
|
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">&lt;!-- ... --&gt;</code></pre>
|
|
|
|
|
|
<pre style=3D"font-family:Hack, Consolas, Menlo, "Liberation Mono&q=
|
|
uot;, Courier, monospace;font-size:85%;background-color:#ececec;word-wrap=
|
|
:break-word;margin:1em 0;padding:8px;border:none;border-radius:3px;width:=
|
|
auto;overflow-x:auto;overflow-y:hidden"><code style=3D"font-family:Hack, =
|
|
Consolas, Menlo, "Liberation Mono", Courier, monospace;font-siz=
|
|
e:85%;background-color:#ececec;word-wrap:break-word;border-radius:3px;pad=
|
|
ding:0.2em;margin:0;padding:0">&lt;xsl:otherwise&gt;<br> =
|
|
&lt;xsl:message&gt;Don't know how to deal with figure "&am=
|
|
p;lt;xsl:value-of select=3D"$next-figure"/&gt;".&lt;/xsl:message&=
|
|
amp;gt;<br> &lt;/xsl:otherwise&gt;<br> &lt;=
|
|
/xsl:choose&gt;<br> &lt;/xsl:template&gt;@</code></pre>
|
|
|
|
|
|
<div itemscope=3D"itemscope" itemtype=3D"http://schema.org/EmailMessage">=
|
|
|
|
<div itemscope=3D"itemscope" itemprop=3D"action" itemtype=3D"http://schem=
|
|
a.org/ViewAction">
|
|
<link itemprop=3D"url" href=3D"https://saxonica.plan.io/issues/3098?pn=3D=
|
|
1#change-7799">
|
|
<meta itemprop=3D"name" content=3D"View Issue">
|
|
</div>
|
|
<meta itemprop=3D"description" content=3D"View this issue update on Plani=
|
|
o">
|
|
</div>
|
|
|
|
</td></tr>
|
|
<tr>
|
|
<td class=3D"footer" style=3D"font-size:0.8em;width:100%">
|
|
<hr style=3D"width:100%;height:1px;background:#ccc;border:0;margin:1.2em =
|
|
0">
|
|
<p>You have received this notification because you have either subscribed=
|
|
to or are involved in a project on Saxonica Developer Community site.<br=
|
|
>To change your notification preferences, please click here: <a href=3D"h=
|
|
ttps://saxonica.plan.io/my/account?tour=3Dmail_preferences" style=3D"colo=
|
|
r:#0088b7">https://saxonica.plan.io/my/account?tour=3Dmail_preferences</a=
|
|
></p>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td class=3D"planio_footer" style=3D"text-align:center;width:100%;font-fa=
|
|
mily:MarketWeb, Helvetica, Arial, sans-serif;font-size:1.2em;color:#D7D7D=
|
|
7">
|
|
<br><div><a href=3D"https://plan.io/" style=3D"color:#0088b7;color:#D7D7D=
|
|
7;text-decoration:none">This notification was cheerfully delivered by</a>=
|
|
</div>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr><td class=3D"planio_footer_logo" style=3D"text-align:center;width:100=
|
|
%"><a href=3D"https://plan.io/" title=3D"Planio" style=3D"color:#0088b7">=
|
|
<img src=3D"https://assets.plan.io/images/planio_logo_gray_204x50.png" he=
|
|
ight=3D"25" width=3D"102" border=3D"0" alt=3D"Planio" style=3D"vertical-a=
|
|
lign:middle;border:none"></a></td></tr>
|
|
</tbody></table>
|
|
|
|
|
|
</blockquote></body></html>=
|
|
|
|
--=-i/+0gHEupJUj4SVuh7PB--
|