summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/Clipperz/PM/UI/Canvas
authorGiulio Cesare Solaroli <giulio.cesare@clipperz.com>2011-10-02 23:56:18 (UTC)
committer Giulio Cesare Solaroli <giulio.cesare@clipperz.com>2011-10-02 23:56:18 (UTC)
commitef68436ac04da078ffdcacd7e1f785473a303d45 (patch) (side-by-side diff)
treec403752d66a2c4775f00affd4fa8431b29c5b68c /frontend/gamma/js/Clipperz/PM/UI/Canvas
parent597ecfbc0249d83e1b856cbd558340c01237a360 (diff)
downloadclipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.zip
clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.gz
clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.bz2
First version of the newly restructured repository
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI/Canvas') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js120
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js208
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js209
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js237
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js1719
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js310
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js68
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js65
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js280
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js391
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js438
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js403
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js153
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js156
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js163
15 files changed, 4920 insertions, 0 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js
new file mode 100644
index 0000000..169946a
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js
@@ -0,0 +1,120 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// download.js
+// Download
+//
+// Created by Giulio Cesare Solaroli on 3/15/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_CoverActions_downloadWidth = 46.0;
+var kClipperz_PM_UI_Canvas_CoverActions_downloadHeight = 46.0;
+
+function Clipperz_PM_UI_Canvas_CoverActions_download(canvas, aColor, aFillColor, aThickness)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var stroke;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_downloadHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_downloadWidth, kClipperz_PM_UI_Canvas_CoverActions_downloadHeight);
+
+ // arrow
+
+ stroke = aThickness;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 16.5;
+ pointY = 22.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 19.5;
+ pointY = 8.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 30.038;
+ pointY = 10.605;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.354;
+ pointY = 24.354;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 33.28;
+ pointY = 25.293;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 19.81;
+ pointY = 36.828;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 10.07;
+ pointY = 21.617;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 16.5;
+ pointY = 22.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aFillColor;
+ context.fill();
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js
new file mode 100644
index 0000000..b8e535b
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js
@@ -0,0 +1,208 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// look.js
+// Look
+//
+// Created by Giulio Cesare Solaroli on 3/15/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_CoverActions_lookWidth = 46.0;
+var kClipperz_PM_UI_Canvas_CoverActions_lookHeight = 46.0;
+
+function Clipperz_PM_UI_Canvas_CoverActions_look(canvas, aColor, aFillColor, aThickness)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var stroke;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth + canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_CoverActions_lookWidth, canvas.height / kClipperz_PM_UI_Canvas_CoverActions_lookHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_CoverActions_lookWidth, kClipperz_PM_UI_Canvas_CoverActions_lookHeight);
+
+ // Layer 6
+
+ stroke = aThickness;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.save();
+ context.translate(17.5, 23.0);
+ context.rotate(-0.503);
+ context.translate(-17.5, -23.0);
+ context.beginPath();
+ pointX = 28.5;
+ pointY = 31.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 28.5;
+ pointY = 14.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 6.5;
+ pointY = 14.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 6.5;
+ pointY = 31.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 28.5;
+ pointY = 31.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aFillColor;
+ context.fill();
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+ context.restore();
+
+ // Layer 3
+
+ stroke = aThickness;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.save();
+ context.translate(22.5, 20.0);
+ context.rotate(-0.071);
+ context.translate(-22.5, -20.0);
+ context.beginPath();
+ pointX = 33.5;
+ pointY = 28.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 33.5;
+ pointY = 11.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 11.5;
+ pointY = 11.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 11.5;
+ pointY = 28.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 33.5;
+ pointY = 28.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aFillColor;
+ context.fill();
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+ context.restore();
+
+ // Layer 4
+
+ stroke = aThickness;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.save();
+ context.translate(27.5, 18.0);
+ context.rotate(0.232);
+ context.translate(-27.5, -18.0);
+ context.beginPath();
+ pointX = 38.5;
+ pointY = 26.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 38.5;
+ pointY = 9.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 16.5;
+ pointY = 9.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 16.5;
+ pointY = 26.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.5;
+ pointY = 26.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aFillColor;
+ context.fill();
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+ context.restore();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js
new file mode 100644
index 0000000..9c4e5ba
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js
@@ -0,0 +1,209 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// directLogin.js
+// directLogin
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Features_directLoginWidth = 76.0;
+var kClipperz_PM_UI_Canvas_Features_directLoginHeight = 76.0;
+
+function Clipperz_PM_UI_Canvas_Features_directLogin(canvas, aColor, aBannerColor, aBannerBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var stroke;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_directLoginWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_directLoginHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_directLoginWidth, kClipperz_PM_UI_Canvas_Features_directLoginHeight);
+
+ // Layer 2
+
+ stroke = 6.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 30.0;
+ pointY = 41.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 45.579;
+ pointY = 25.451;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 34.207;
+ pointY = 45.697;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 24.101;
+ pointY = 37.52;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 24.122;
+ pointY = 47.828;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 34.207;
+ pointY = 45.697;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ stroke = 6.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 24.631;
+ pointY = 28.971;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 46.497;
+ pointY = 26.451;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 25.014;
+ pointY = 35.265;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 22.166;
+ pointY = 22.58;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 15.784;
+ pointY = 30.675;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 25.014;
+ pointY = 35.265;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ stroke = 6.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 42.282;
+ pointY = 47.03;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 47.771;
+ pointY = 25.714;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 48.294;
+ pointY = 48.929;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 35.432;
+ pointY = 47.039;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 40.7;
+ pointY = 55.899;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 48.294;
+ pointY = 48.929;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js
new file mode 100644
index 0000000..501b69b
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js
@@ -0,0 +1,237 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// protect.js
+// protect
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Features_protectWidth = 76.0;
+var kClipperz_PM_UI_Canvas_Features_protectHeight = 76.0;
+
+function Clipperz_PM_UI_Canvas_Features_protect(canvas, aColor, aBannerColor, aBannerBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ var stroke;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_protectWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_protectHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_protectWidth, kClipperz_PM_UI_Canvas_Features_protectHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 38.5;
+ pointY = 36.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 37.068;
+ pointY = 38.816;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 37.41;
+ controlPoint1Y = 36.234;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 37.175;
+ controlPoint2Y = 37.907;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 37.031;
+ pointY = 40.802;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 36.991;
+ controlPoint1Y = 39.474;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 36.98;
+ controlPoint2Y = 40.141;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 37.258;
+ pointY = 42.23;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 37.068;
+ controlPoint1Y = 41.283;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 37.139;
+ controlPoint2Y = 41.762;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 38.348;
+ pointY = 43.979;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 37.402;
+ controlPoint1Y = 42.799;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 37.682;
+ controlPoint2Y = 43.798;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 38.5;
+ pointY = 36.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 40.249;
+ controlPoint1Y = 44.497;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 40.723;
+ controlPoint2Y = 36.303;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 38.5;
+ pointY = 36.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 50.0;
+ pointY = 52.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 26.0;
+ pointY = 52.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 26.0;
+ pointY = 33.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 50.0;
+ pointY = 33.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 50.0;
+ pointY = 52.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 47.0;
+ pointY = 32.463;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 38.0;
+ pointY = 52.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 47.0;
+ controlPoint1Y = 52.925;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 38.0;
+ controlPoint2Y = 52.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 29.0;
+ pointY = 32.463;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 38.0;
+ controlPoint1Y = 52.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 29.0;
+ controlPoint2Y = 52.925;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 47.0;
+ pointY = 32.463;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 29.0;
+ controlPoint1Y = 12.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 47.0;
+ controlPoint2Y = 12.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.strokeStyle = aColor;
+ stroke = 4.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ stroke *= 2.0;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.save();
+ context.clip();
+ context.stroke();
+ context.restore();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js
new file mode 100644
index 0000000..825a17e
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js
@@ -0,0 +1,1719 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// share.js
+// share
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Features_shareWidth = 76.0;
+var kClipperz_PM_UI_Canvas_Features_shareHeight = 76.0;
+
+function Clipperz_PM_UI_Canvas_Features_share(canvas, aColor, aBannerColor, aBannerBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ var stroke;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_shareWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_shareHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_shareWidth, kClipperz_PM_UI_Canvas_Features_shareHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 43.179;
+ pointY = 18.621;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 37.163;
+ pointY = 12.605;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 43.179;
+ controlPoint1Y = 15.32;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 40.463;
+ controlPoint2Y = 12.605;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 31.147;
+ pointY = 18.621;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 33.863;
+ controlPoint1Y = 12.605;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 31.147;
+ controlPoint2Y = 15.32;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 37.163;
+ pointY = 24.637;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 31.147;
+ controlPoint1Y = 21.921;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 33.863;
+ controlPoint2Y = 24.637;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 43.179;
+ pointY = 18.621;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 40.463;
+ controlPoint1Y = 24.637;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 43.179;
+ controlPoint2Y = 21.921;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 56.548;
+ pointY = 53.379;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 51.2;
+ pointY = 48.032;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 56.548;
+ controlPoint1Y = 50.446;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 54.134;
+ controlPoint2Y = 48.032;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 45.853;
+ pointY = 53.379;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 48.267;
+ controlPoint1Y = 48.032;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 45.853;
+ controlPoint2Y = 50.446;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 51.2;
+ pointY = 58.727;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 45.853;
+ controlPoint1Y = 56.313;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 48.267;
+ controlPoint2Y = 58.727;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 56.548;
+ pointY = 53.379;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 54.134;
+ controlPoint1Y = 58.727;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 56.548;
+ controlPoint2Y = 56.313;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 31.147;
+ pointY = 38.674;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 25.8;
+ pointY = 33.326;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 31.147;
+ controlPoint1Y = 35.74;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 28.733;
+ controlPoint2Y = 33.326;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.452;
+ pointY = 38.674;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 22.866;
+ controlPoint1Y = 33.326;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.452;
+ controlPoint2Y = 35.74;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.8;
+ pointY = 44.021;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.452;
+ controlPoint1Y = 41.607;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.866;
+ controlPoint2Y = 44.021;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 31.147;
+ pointY = 38.674;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 28.733;
+ controlPoint1Y = 44.021;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 31.147;
+ controlPoint2Y = 41.607;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 39.168;
+ pointY = 48.032;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 33.821;
+ pointY = 42.684;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 39.168;
+ controlPoint1Y = 45.098;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 36.754;
+ controlPoint2Y = 42.684;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 28.473;
+ pointY = 48.032;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 30.887;
+ controlPoint1Y = 42.684;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 28.473;
+ controlPoint2Y = 45.098;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 33.821;
+ pointY = 53.379;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 28.473;
+ controlPoint1Y = 50.965;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 30.887;
+ controlPoint2Y = 53.379;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 39.168;
+ pointY = 48.032;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 36.754;
+ controlPoint1Y = 53.379;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 39.168;
+ controlPoint2Y = 50.965;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 56.548;
+ pointY = 29.984;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 53.206;
+ pointY = 26.642;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 56.548;
+ controlPoint1Y = 28.151;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 55.039;
+ controlPoint2Y = 26.642;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 49.863;
+ pointY = 29.984;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 51.372;
+ controlPoint1Y = 26.642;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 49.863;
+ controlPoint2Y = 28.151;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 53.206;
+ pointY = 33.326;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 49.863;
+ controlPoint1Y = 31.817;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 51.372;
+ controlPoint2Y = 33.326;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 56.548;
+ pointY = 29.984;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 55.039;
+ controlPoint1Y = 33.326;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 56.548;
+ controlPoint2Y = 31.817;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 49.863;
+ pointY = 39.342;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 46.521;
+ pointY = 36.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 49.863;
+ controlPoint1Y = 37.509;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 48.355;
+ controlPoint2Y = 36.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 43.179;
+ pointY = 39.342;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 44.688;
+ controlPoint1Y = 36.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 43.179;
+ controlPoint2Y = 37.509;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 46.521;
+ pointY = 42.684;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 43.179;
+ controlPoint1Y = 41.176;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 44.688;
+ controlPoint2Y = 42.684;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 49.863;
+ pointY = 39.342;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 48.355;
+ controlPoint1Y = 42.684;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 49.863;
+ controlPoint2Y = 41.176;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 37.163;
+ pointY = 19.289;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 53.206;
+ pointY = 29.984;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.lineWidth = stroke;
+ context.lineCap = "square";
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 50.532;
+ pointY = 54.048;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 37.163;
+ pointY = 48.7;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 27.805;
+ pointY = 33.995;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 33.153;
+ pointY = 24.637;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 38.5;
+ pointY = 24.637;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 45.184;
+ pointY = 36.668;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 37.163;
+ pointY = 19.289;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 34.155;
+ pointY = 44.857;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 26.468;
+ pointY = 36.668;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 52.871;
+ pointY = 30.151;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 53.206;
+ pointY = 31.321;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 51.535;
+ pointY = 52.878;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 26.468;
+ pointY = 38.005;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 46.856;
+ pointY = 39.175;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 26.468;
+ pointY = 38.005;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 34.489;
+ pointY = 48.7;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ stroke = 1.0;
+ stroke *= resolution;
+ if (stroke < 1.0)
+ stroke = Math.ceil(stroke);
+ else
+ stroke = Math.round(stroke);
+ stroke /= resolution;
+ alignStroke = (0.5 * stroke * resolution) % 1.0;
+ context.beginPath();
+ pointX = 34.489;
+ pointY = 48.7;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 46.521;
+ pointY = 39.342;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.strokeStyle = aColor;
+ context.stroke();
+
+ // Layer 2
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 38.974;
+ pointY = 0.013;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 53.593;
+ pointY = 3.386;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 44.035;
+ controlPoint1Y = 0.11;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 48.977;
+ controlPoint2Y = 1.35;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 3.386;
+ pointY = 53.593;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.011;
+ pointY = 37.17;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 1.013;
+ controlPoint1Y = 48.448;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = -0.062;
+ controlPoint2Y = 42.82;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 37.17;
+ pointY = 0.011;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.974;
+ pointY = 0.013;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 38.325;
+ controlPoint1Y = -0.004;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 37.723;
+ controlPoint2Y = -0.004;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 38.974;
+ pointY = 0.013;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aBannerBackgroundColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 6.58;
+ pointY = 36.628;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 7.533;
+ pointY = 34.418;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 6.575;
+ controlPoint1Y = 35.794;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 6.893;
+ controlPoint2Y = 35.058;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 10.253;
+ pointY = 33.382;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 8.389;
+ controlPoint1Y = 33.562;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 9.296;
+ controlPoint2Y = 33.216;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 11.555;
+ pointY = 33.979;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 10.787;
+ controlPoint1Y = 33.479;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 11.221;
+ controlPoint2Y = 33.678;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 10.492;
+ pointY = 35.043;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 9.673;
+ pointY = 34.756;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 10.179;
+ controlPoint1Y = 34.868;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 9.906;
+ controlPoint2Y = 34.772;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 8.482;
+ pointY = 35.285;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 9.259;
+ controlPoint1Y = 34.729;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 8.862;
+ controlPoint2Y = 34.905;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 8.035;
+ pointY = 36.667;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 8.095;
+ controlPoint1Y = 35.671;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 7.946;
+ controlPoint2Y = 36.132;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 9.024;
+ pointY = 38.326;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 8.124;
+ controlPoint1Y = 37.203;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 8.453;
+ controlPoint2Y = 37.756;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 10.661;
+ pointY = 39.255;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 9.595;
+ controlPoint1Y = 38.897;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 10.141;
+ controlPoint2Y = 39.207;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 11.987;
+ pointY = 38.782;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 11.181;
+ controlPoint1Y = 39.304;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 11.623;
+ controlPoint2Y = 39.146;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 12.473;
+ pointY = 37.563;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 12.359;
+ controlPoint1Y = 38.409;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 12.522;
+ controlPoint2Y = 38.003;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 12.152;
+ pointY = 36.704;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 12.45;
+ controlPoint1Y = 37.324;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 12.343;
+ controlPoint2Y = 37.037;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 13.205;
+ pointY = 35.651;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 13.853;
+ pointY = 37.71;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 13.668;
+ controlPoint1Y = 36.297;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 13.884;
+ controlPoint2Y = 36.984;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 12.919;
+ pointY = 39.687;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 13.822;
+ controlPoint1Y = 38.436;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 13.51;
+ controlPoint2Y = 39.095;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 10.488;
+ pointY = 40.709;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 12.187;
+ controlPoint1Y = 40.419;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 11.377;
+ controlPoint2Y = 40.759;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 7.919;
+ pointY = 39.397;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 9.597;
+ controlPoint1Y = 40.656;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 8.741;
+ controlPoint2Y = 40.218;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 6.58;
+ pointY = 36.628;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 7.031;
+ controlPoint1Y = 38.508;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 6.584;
+ controlPoint2Y = 37.585;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 6.58;
+ pointY = 36.628;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 17.778;
+ pointY = 32.093;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 16.824;
+ pointY = 30.396;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 17.715;
+ controlPoint1Y = 31.534;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 17.397;
+ controlPoint2Y = 30.969;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 15.129;
+ pointY = 29.443;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 16.253;
+ controlPoint1Y = 29.825;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 15.688;
+ controlPoint2Y = 29.507;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 13.658;
+ pointY = 29.978;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 14.569;
+ controlPoint1Y = 29.378;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 14.079;
+ controlPoint2Y = 29.557;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 13.116;
+ pointY = 31.452;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 13.236;
+ controlPoint1Y = 30.399;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 13.056;
+ controlPoint2Y = 30.891;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 14.065;
+ pointY = 33.154;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 13.175;
+ controlPoint1Y = 32.014;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 13.492;
+ controlPoint2Y = 32.581;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 15.767;
+ pointY = 34.104;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 14.638;
+ controlPoint1Y = 33.727;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 15.206;
+ controlPoint2Y = 34.044;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 17.242;
+ pointY = 33.562;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 16.329;
+ controlPoint1Y = 34.164;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 16.82;
+ controlPoint2Y = 33.983;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 17.778;
+ pointY = 32.093;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 17.663;
+ controlPoint1Y = 33.14;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 17.842;
+ controlPoint2Y = 32.651;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 17.778;
+ pointY = 32.093;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 19.216;
+ pointY = 32.201;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 18.143;
+ pointY = 34.463;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.228;
+ controlPoint1Y = 32.982;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.87;
+ controlPoint2Y = 33.736;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 15.881;
+ pointY = 35.537;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 17.415;
+ controlPoint1Y = 35.19;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 16.661;
+ controlPoint2Y = 35.548;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 13.009;
+ pointY = 34.211;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 14.88;
+ controlPoint1Y = 35.567;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 13.922;
+ controlPoint2Y = 35.125;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 11.683;
+ pointY = 31.338;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 12.076;
+ controlPoint1Y = 33.279;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 11.634;
+ controlPoint2Y = 32.321;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 12.757;
+ pointY = 29.077;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 11.671;
+ controlPoint1Y = 30.558;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 12.029;
+ controlPoint2Y = 29.804;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 15.018;
+ pointY = 28.003;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 13.484;
+ controlPoint1Y = 28.349;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 14.238;
+ controlPoint2Y = 27.991;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 17.887;
+ pointY = 29.332;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 15.999;
+ controlPoint1Y = 27.957;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 16.955;
+ controlPoint2Y = 28.4;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.216;
+ pointY = 32.201;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.801;
+ controlPoint1Y = 30.246;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.244;
+ controlPoint2Y = 31.202;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.216;
+ pointY = 32.201;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 19.534;
+ pointY = 22.61;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 21.064;
+ pointY = 21.08;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 26.153;
+ pointY = 26.17;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 25.162;
+ pointY = 27.16;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 21.72;
+ pointY = 23.718;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 21.307;
+ pointY = 23.299;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.621;
+ controlPoint1Y = 23.619;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.483;
+ controlPoint2Y = 23.479;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.898;
+ pointY = 22.883;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.131;
+ controlPoint1Y = 23.118;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.995;
+ controlPoint2Y = 22.979;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.206;
+ pointY = 28.117;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 23.173;
+ pointY = 29.149;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 17.946;
+ pointY = 25.835;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 18.362;
+ pointY = 26.244;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.043;
+ controlPoint1Y = 25.931;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.181;
+ controlPoint2Y = 26.068;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 18.781;
+ pointY = 26.656;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.543;
+ controlPoint1Y = 26.42;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.682;
+ controlPoint2Y = 26.557;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 22.224;
+ pointY = 30.099;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 21.233;
+ pointY = 31.09;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 16.144;
+ pointY = 26;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 17.69;
+ pointY = 24.454;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.617;
+ pointY = 27.53;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 19.534;
+ pointY = 22.61;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 28.114;
+ pointY = 24.208;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.057;
+ pointY = 25.265;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 21.968;
+ pointY = 20.176;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 23.025;
+ pointY = 19.119;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 28.114;
+ pointY = 24.208;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 23.998;
+ pointY = 18.146;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 25.114;
+ pointY = 17.03;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 30.693;
+ pointY = 18.556;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.14;
+ pointY = 15.004;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 28.131;
+ pointY = 14.013;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 33.22;
+ pointY = 19.102;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 32.157;
+ pointY = 20.165;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 26.464;
+ pointY = 18.629;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 30.079;
+ pointY = 22.244;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.088;
+ pointY = 23.235;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 23.998;
+ pointY = 18.146;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 34.132;
+ pointY = 11.188;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 32.813;
+ pointY = 11.05;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 33.704;
+ controlPoint1Y = 10.921;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 33.264;
+ controlPoint2Y = 10.875;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 32.116;
+ pointY = 11.52;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 32.562;
+ controlPoint1Y = 11.149;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 32.33;
+ controlPoint2Y = 11.306;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 31.57;
+ pointY = 12.994;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 31.706;
+ controlPoint1Y = 11.93;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 31.524;
+ controlPoint2Y = 12.421;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 32.571;
+ pointY = 14.786;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 31.616;
+ controlPoint1Y = 13.567;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 31.95;
+ controlPoint2Y = 14.165;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 34.329;
+ pointY = 15.687;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 33.197;
+ controlPoint1Y = 15.412;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 33.783;
+ controlPoint2Y = 15.713;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 35.693;
+ pointY = 15.104;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 34.874;
+ controlPoint1Y = 15.662;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 35.329;
+ controlPoint2Y = 15.467;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 36.261;
+ pointY = 13.918;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 36.049;
+ controlPoint1Y = 14.747;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 36.239;
+ controlPoint2Y = 14.352;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 35.872;
+ pointY = 12.687;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 36.282;
+ controlPoint1Y = 13.484;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 36.153;
+ controlPoint2Y = 13.074;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 34.695;
+ pointY = 13.864;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 33.845;
+ pointY = 13.015;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 35.965;
+ pointY = 10.895;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.696;
+ pointY = 13.626;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 37.992;
+ pointY = 14.33;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 37.25;
+ pointY = 13.802;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 37.208;
+ pointY = 14.866;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 37.287;
+ controlPoint1Y = 14.249;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 37.273;
+ controlPoint2Y = 14.603;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 36.431;
+ pointY = 16.16;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 37.1;
+ controlPoint1Y = 15.319;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 36.841;
+ controlPoint2Y = 15.751;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 34.073;
+ pointY = 17.117;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 35.757;
+ controlPoint1Y = 16.835;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 34.971;
+ controlPoint2Y = 17.153;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 31.473;
+ pointY = 15.863;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 33.155;
+ controlPoint1Y = 17.096;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 32.288;
+ controlPoint2Y = 16.678;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 30.172;
+ pointY = 13.201;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 30.649;
+ controlPoint1Y = 15.039;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 30.216;
+ controlPoint2Y = 14.152;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 31.225;
+ pointY = 10.657;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 30.128;
+ controlPoint1Y = 12.251;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 30.479;
+ controlPoint2Y = 11.402;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 33.276;
+ pointY = 9.59;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 31.872;
+ controlPoint1Y = 10.01;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 32.555;
+ controlPoint2Y = 9.654;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 35.178;
+ pointY = 10.142;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 33.996;
+ controlPoint1Y = 9.525;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 34.63;
+ controlPoint2Y = 9.71;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 34.132;
+ pointY = 11.188;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 34.878;
+ pointY = 7.301;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 35.958;
+ pointY = 6.22;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 37.25;
+ pointY = 7.511;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 39.346;
+ pointY = 10.166;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.831;
+ pointY = 10.681;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 36.169;
+ pointY = 8.592;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 34.878;
+ pointY = 7.301;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 38.976;
+ pointY = 11.351;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 40.005;
+ pointY = 10.322;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 41.003;
+ pointY = 11.32;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 39.974;
+ pointY = 12.349;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.976;
+ pointY = 11.351;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 41.528;
+ pointY = 10.795;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ context.fillStyle = aBannerColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js
new file mode 100644
index 0000000..eaeb7f1
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js
@@ -0,0 +1,310 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// store.js
+// store
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Features_storeWidth = 76.0;
+var kClipperz_PM_UI_Canvas_Features_storeHeight = 76.0;
+
+function Clipperz_PM_UI_Canvas_Features_store(canvas, aColor, aBannerColor, aBannerBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth + canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Features_storeWidth, canvas.height / kClipperz_PM_UI_Canvas_Features_storeHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Features_storeWidth, kClipperz_PM_UI_Canvas_Features_storeHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 27.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 24.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 24.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 54.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 54.0;
+ pointY = 24.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 24.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 54.0;
+ pointY = 29.5;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 43.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 43.0;
+ pointY = 32.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 32.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 43.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 27.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 32.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 32.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 37.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 27.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 46.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 46.0;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 46.0;
+ pointY = 44.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 40.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 40.0;
+ pointY = 46.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 46.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 40.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 27.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 46.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 46.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 51.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js
new file mode 100644
index 0000000..5de2e96
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js
@@ -0,0 +1,68 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+Clipperz.Base.module('Clipperz.PM.UI.Canvas');
+
+MochiKit.Base.update(Clipperz.PM.UI.Canvas , {
+ 'marks': {
+ '!': Clipperz_PM_UI_Canvas_Marks_exclamationMark,
+ '?': Clipperz_PM_UI_Canvas_Marks_questionMark,
+ 'i': Clipperz_PM_UI_Canvas_Marks_info
+ },
+
+ 'features': {
+ 'store': Clipperz_PM_UI_Canvas_Features_store,
+ 'protect': Clipperz_PM_UI_Canvas_Features_protect,
+ 'directLogin': Clipperz_PM_UI_Canvas_Features_directLogin,
+ 'share': Clipperz_PM_UI_Canvas_Features_share
+ },
+
+ 'tips': {
+ 'open': Clipperz_PM_UI_Canvas_Tips_open,
+ 'close': Clipperz_PM_UI_Canvas_Tips_close
+ },
+
+ 'star': {
+ 'normal': Clipperz_PM_UI_Canvas_Star_normal
+ },
+
+ 'coverActions': {
+ 'look': Clipperz_PM_UI_Canvas_CoverActions_look,
+ 'download': Clipperz_PM_UI_Canvas_CoverActions_download
+ },
+
+ 'registerButton': {
+ 'normal': Clipperz_PM_UI_Canvas_RegisterButton_normal
+ },
+
+ 'logo': {
+ 'normal': Clipperz_PM_UI_Canvas_Logo_normal
+ },
+
+ __syntaxFix__: "syntax fix"
+});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js
new file mode 100644
index 0000000..e0bea36
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js
@@ -0,0 +1,65 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// normal.js
+// normal
+//
+// Created by Giulio Cesare Solaroli on 3/25/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Logo_normalWidth = 150.0;
+var kClipperz_PM_UI_Canvas_Logo_normalHeight = 39.0;
+
+function Clipperz_PM_UI_Canvas_Logo_normal(canvas, aMainColor, aSecondaryColor)
+{
+ var context = canvas.getContext("2d");
+ var string;
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Logo_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Logo_normalHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Logo_normalWidth, kClipperz_PM_UI_Canvas_Logo_normalHeight);
+
+ // clipper…
+
+ string = "clipper";
+ context.font = "38.0pt Helvetica-Bold";
+ context.fillStyle = aMainColor;
+ context.fillText(string, -9.0, -9.0);
+
+ // …z
+
+ string = "z";
+ context.font = "38.0pt Helvetica-Bold";
+ context.fillStyle = aSecondaryColor;
+ context.fillText(string, 125.0, -9.0);
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js
new file mode 100644
index 0000000..f3ae04d
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js
@@ -0,0 +1,280 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// exclamationMark.js
+// !
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth = 50.0;
+var kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight = 50.0;
+
+function Clipperz_PM_UI_Canvas_Marks_exclamationMark(canvas, aColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_exclamationMarkWidth, kClipperz_PM_UI_Canvas_Marks_exclamationMarkHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 26.499;
+ pointY = 10.848;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 20.887;
+ pointY = 11.584;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.395;
+ controlPoint1Y = 10.802;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.175;
+ controlPoint2Y = 11.078;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.013;
+ pointY = 13.194;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.335;
+ controlPoint1Y = 11.814;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.921;
+ controlPoint2Y = 12.826;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 23.049;
+ pointY = 28.788;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.243;
+ controlPoint1Y = 15.448;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.589;
+ controlPoint2Y = 26.35;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.027;
+ pointY = 29.156;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.279;
+ controlPoint1Y = 29.018;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 24.705;
+ controlPoint2Y = 29.202;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.971;
+ pointY = 11.354;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.809;
+ controlPoint1Y = 25.384;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.971;
+ controlPoint2Y = 12.826;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.499;
+ pointY = 10.848;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.557;
+ controlPoint1Y = 11.032;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 26.913;
+ controlPoint2Y = 10.848;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.499;
+ pointY = 10.848;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 24.337;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 21.899;
+ pointY = 32.882;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.463;
+ controlPoint1Y = 31.962;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.589;
+ controlPoint2Y = 32.284;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.703;
+ pointY = 35.458;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.163;
+ controlPoint1Y = 33.572;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.703;
+ controlPoint2Y = 34.538;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.669;
+ pointY = 38.08;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.703;
+ controlPoint1Y = 36.47;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.979;
+ controlPoint2Y = 37.344;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.015;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 22.405;
+ controlPoint1Y = 38.77;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 23.325;
+ controlPoint2Y = 39.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.821;
+ pointY = 38.034;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.073;
+ controlPoint1Y = 39.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 26.131;
+ controlPoint2Y = 38.724;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.833;
+ pointY = 35.55;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.465;
+ controlPoint1Y = 37.344;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.833;
+ controlPoint2Y = 36.194;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.683;
+ pointY = 32.744;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.833;
+ controlPoint1Y = 34.676;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.557;
+ controlPoint2Y = 33.572;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.337;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.085;
+ controlPoint1Y = 32.238;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 25.211;
+ controlPoint2Y = 31.962;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.337;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 30.639;
+ pointY = 38.402;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ context.fillStyle = aColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js
new file mode 100644
index 0000000..adab74f
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js
@@ -0,0 +1,391 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// info.js
+// i
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Marks_infoWidth = 50.0;
+var kClipperz_PM_UI_Canvas_Marks_infoHeight = 50.0;
+
+function Clipperz_PM_UI_Canvas_Marks_info(canvas, aColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ var color;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_infoWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_infoHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_infoWidth, kClipperz_PM_UI_Canvas_Marks_infoHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 30.253;
+ pointY = 37.436;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 28.505;
+ pointY = 37.022;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.677;
+ pointY = 35.09;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.953;
+ controlPoint1Y = 36.792;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.677;
+ controlPoint2Y = 36.47;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.631;
+ pointY = 27.546;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.631;
+ controlPoint1Y = 32.974;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.631;
+ controlPoint2Y = 29.892;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.677;
+ pointY = 19.726;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.631;
+ controlPoint1Y = 24.97;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.677;
+ controlPoint2Y = 21.612;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.535;
+ pointY = 21.336;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.331;
+ controlPoint1Y = 20.692;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.593;
+ controlPoint2Y = 21.336;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.443;
+ pointY = 22.762;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.397;
+ controlPoint1Y = 21.52;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.305;
+ controlPoint2Y = 22.532;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.283;
+ pointY = 23.82;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.639;
+ controlPoint1Y = 23.222;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.961;
+ controlPoint2Y = 23.452;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.605;
+ pointY = 24.97;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.513;
+ controlPoint1Y = 24.05;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.605;
+ controlPoint2Y = 24.602;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.651;
+ pointY = 29.156;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.651;
+ controlPoint1Y = 25.752;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.651;
+ controlPoint2Y = 27.592;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.605;
+ pointY = 35.228;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.651;
+ controlPoint1Y = 31.364;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.651;
+ controlPoint2Y = 34.216;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.823;
+ pointY = 37.022;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.559;
+ controlPoint1Y = 36.332;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.467;
+ controlPoint2Y = 36.838;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.121;
+ pointY = 37.436;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.363;
+ controlPoint1Y = 37.206;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.857;
+ controlPoint2Y = 37.298;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.121;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.937;
+ controlPoint1Y = 37.62;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.983;
+ controlPoint2Y = 38.77;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.503;
+ pointY = 38.862;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.271;
+ controlPoint1Y = 39.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.927;
+ controlPoint2Y = 38.862;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 30.023;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.401;
+ controlPoint1Y = 38.862;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 29.149;
+ controlPoint2Y = 39.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 30.253;
+ pointY = 37.436;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 30.299;
+ controlPoint1Y = 38.77;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 30.391;
+ controlPoint2Y = 37.62;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 30.253;
+ pointY = 37.436;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 27.493;
+ pointY = 13.976;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 27.125;
+ pointY = 12.228;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.493;
+ controlPoint1Y = 13.608;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.401;
+ controlPoint2Y = 12.688;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.963;
+ pointY = 11.63;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.849;
+ controlPoint1Y = 11.998;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 26.113;
+ controlPoint2Y = 11.63;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.513;
+ pointY = 12.688;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.767;
+ controlPoint1Y = 11.63;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.203;
+ controlPoint2Y = 12.09;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.283;
+ pointY = 14.942;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.145;
+ controlPoint1Y = 13.148;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.145;
+ controlPoint2Y = 14.436;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 22.801;
+ pointY = 17.012;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.513;
+ controlPoint1Y = 15.908;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.973;
+ controlPoint2Y = 16.69;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.205;
+ pointY = 16.69;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.399;
+ controlPoint1Y = 17.288;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 25.791;
+ controlPoint2Y = 17.058;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.493;
+ pointY = 13.976;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.941;
+ controlPoint1Y = 16.046;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.493;
+ controlPoint2Y = 14.896;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.493;
+ pointY = 13.976;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 30.851;
+ pointY = 38.862;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ color = "#FFFFFF";
+ context.fillStyle = color;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js
new file mode 100644
index 0000000..003c4c2
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js
@@ -0,0 +1,438 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// questionMark.js
+// ?
+//
+// Created by Giulio Cesare Solaroli on 3/7/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Marks_questionMarkWidth = 50.0;
+var kClipperz_PM_UI_Canvas_Marks_questionMarkHeight = 50.0;
+
+function Clipperz_PM_UI_Canvas_Marks_questionMark(canvas, aColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ var color;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth + canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, canvas.height / kClipperz_PM_UI_Canvas_Marks_questionMarkHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Marks_questionMarkWidth, kClipperz_PM_UI_Canvas_Marks_questionMarkHeight);
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 24.118;
+ pointY = 24.464;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 24.854;
+ pointY = 23.406;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 24.118;
+ controlPoint1Y = 24.05;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 24.44;
+ controlPoint2Y = 23.636;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 29.454;
+ pointY = 20.6;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.418;
+ controlPoint1Y = 22.532;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 28.534;
+ controlPoint2Y = 21.566;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 30.282;
+ pointY = 17.794;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 29.868;
+ controlPoint1Y = 20.232;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 30.282;
+ controlPoint2Y = 19.082;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.2;
+ pointY = 12.688;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 30.282;
+ controlPoint1Y = 16.322;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 29.454;
+ controlPoint2Y = 14.344;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 21.312;
+ pointY = 10.664;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.636;
+ controlPoint1Y = 11.492;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 23.382;
+ controlPoint2Y = 10.664;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.886;
+ pointY = 11.124;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 20.898;
+ controlPoint1Y = 10.664;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 20.162;
+ controlPoint2Y = 10.894;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 18.0;
+ pointY = 14.666;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.104;
+ controlPoint1Y = 11.676;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.0;
+ controlPoint2Y = 14.068;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 18.598;
+ pointY = 15.586;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.0;
+ controlPoint1Y = 14.896;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.138;
+ controlPoint2Y = 15.494;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.794;
+ pointY = 15.908;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.012;
+ controlPoint1Y = 15.678;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.426;
+ controlPoint2Y = 15.77;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.36;
+ pointY = 20.002;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 22.508;
+ controlPoint1Y = 16.644;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 25.36;
+ controlPoint2Y = 17.886;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.21;
+ pointY = 21.704;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.36;
+ controlPoint1Y = 20.738;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 25.084;
+ controlPoint2Y = 21.198;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.058;
+ pointY = 24.326;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.106;
+ controlPoint1Y = 22.348;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.886;
+ controlPoint2Y = 23.774;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 18.506;
+ pointY = 25.936;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.736;
+ controlPoint1Y = 24.556;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 18.506;
+ controlPoint2Y = 25.338;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.898;
+ pointY = 29.064;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.506;
+ controlPoint1Y = 26.948;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.334;
+ controlPoint2Y = 28.42;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 22.048;
+ pointY = 29.156;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.22;
+ controlPoint1Y = 29.156;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.726;
+ controlPoint2Y = 29.202;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.268;
+ pointY = 27.592;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 22.508;
+ controlPoint1Y = 29.064;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 24.9;
+ controlPoint2Y = 27.96;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.406;
+ pointY = 26.856;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 25.406;
+ controlPoint1Y = 27.454;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 25.544;
+ controlPoint2Y = 26.994;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.118;
+ pointY = 24.464;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 24.578;
+ controlPoint1Y = 25.936;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 24.118;
+ controlPoint2Y = 24.786;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 24.118;
+ pointY = 24.464;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 23.06;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 20.53;
+ pointY = 32.928;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 22.186;
+ controlPoint1Y = 31.962;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.22;
+ controlPoint2Y = 32.33;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 19.426;
+ pointY = 35.458;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.794;
+ controlPoint1Y = 33.618;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.426;
+ controlPoint2Y = 34.538;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 20.392;
+ pointY = 38.08;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 19.426;
+ controlPoint1Y = 36.47;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 19.702;
+ controlPoint2Y = 37.344;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 22.738;
+ pointY = 39.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 21.128;
+ controlPoint1Y = 38.77;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 22.048;
+ controlPoint2Y = 39.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.544;
+ pointY = 38.034;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 23.796;
+ controlPoint1Y = 39.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 24.854;
+ controlPoint2Y = 38.724;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 26.556;
+ pointY = 35.55;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.188;
+ controlPoint1Y = 37.344;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 26.556;
+ controlPoint2Y = 36.194;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 25.452;
+ pointY = 32.744;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 26.556;
+ controlPoint1Y = 34.676;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 26.326;
+ controlPoint2Y = 33.618;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 23.06;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 24.854;
+ controlPoint1Y = 32.284;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 23.934;
+ controlPoint2Y = 31.962;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 23.06;
+ pointY = 31.962;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 32.214;
+ pointY = 38.402;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ color = "#FFFFFF";
+ context.fillStyle = color;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js
new file mode 100644
index 0000000..288e0be
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js
@@ -0,0 +1,403 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// normal.js
+// normal
+//
+// Created by Giulio Cesare Solaroli on 3/24/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_RegisterButton_normalWidth = 282.0;
+var kClipperz_PM_UI_Canvas_RegisterButton_normalHeight = 93.0;
+
+function Clipperz_PM_UI_Canvas_RegisterButton_normal(canvas, aBackgroundColor, aDarkBackgroundColor, aLightColor, aDarkColor, aStarColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var controlPoint1X;
+ var controlPoint1Y;
+ var controlPoint2X;
+ var controlPoint2Y;
+ var gradient;
+ var color;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_RegisterButton_normalHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_RegisterButton_normalWidth, kClipperz_PM_UI_Canvas_RegisterButton_normalHeight);
+
+ // background
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 241.0;
+ pointY = 80.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 274.0;
+ pointY = 47.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 259.103;
+ controlPoint1Y = 80.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 274.0;
+ controlPoint2Y = 65.103;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 274.0;
+ pointY = 45.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 241.0;
+ pointY = 12.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 274.0;
+ controlPoint1Y = 26.897;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 259.103;
+ controlPoint2Y = 12.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 60.0;
+ pointY = 12.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 27.0;
+ pointY = 45.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 41.897;
+ controlPoint1Y = 12.0;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 27.0;
+ controlPoint2Y = 26.897;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 27.0;
+ pointY = 47.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 60.0;
+ pointY = 80.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 27.0;
+ controlPoint1Y = 65.103;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 41.897;
+ controlPoint2Y = 80.0;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 241.0;
+ pointY = 80.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ gradient = context.createLinearGradient(150.5, 12.0, 150.5, 80.0);
+ gradient.addColorStop(0.0, aBackgroundColor);
+ gradient.addColorStop(1.0, aDarkBackgroundColor);
+ context.fillStyle = gradient;
+ context.fill();
+
+ // round
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 44.103;
+ pointY = 4.014;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 65.629;
+ pointY = 10.515;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 51.706;
+ controlPoint1Y = 4.217;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 59.185;
+ controlPoint2Y = 6.475;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 78.65;
+ pointY = 70.918;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 43.0;
+ pointY = 90.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 70.676;
+ controlPoint1Y = 82.788;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 57.23;
+ controlPoint2Y = 89.817;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 0.056;
+ pointY = 44.801;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 18.834;
+ controlPoint1Y = 90.07;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = -1.18;
+ controlPoint2Y = 68.879;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 44.103;
+ pointY = 4.014;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 1.242;
+ controlPoint1Y = 21.708;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 21.202;
+ controlPoint2Y = 3.72;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 44.103;
+ pointY = 4.014;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ gradient = context.createLinearGradient(39.326, 90, 39.326, 4.011);
+ gradient.addColorStop(0.0, aDarkColor);
+ gradient.addColorStop(1.0, aLightColor);
+ context.fillStyle = gradient;
+ context.fill();
+
+ // *
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 23.983;
+ pointY = 35.944;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 37.25;
+ pointY = 40.261;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 37.25;
+ pointY = 24.963;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 48.231;
+ pointY = 24.963;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 48.231;
+ pointY = 40.261;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 61.498;
+ pointY = 35.944;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 64.481;
+ pointY = 45.402;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 50.961;
+ pointY = 49.592;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 59.784;
+ pointY = 62.224;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 51.659;
+ pointY = 68.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 42.836;
+ pointY = 56.066;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 33.759;
+ pointY = 68.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 25.634;
+ pointY = 62.224;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 34.521;
+ pointY = 49.592;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 21.0;
+ pointY = 45.402;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 23.983;
+ pointY = 35.944;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 68.607;
+ pointY = 119.099;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ context.fillStyle = aStarColor;
+ context.fill();
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 212.0;
+ pointY = 125.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 213.0;
+ pointY = 125.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 212.5;
+ pointY = 124.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 212.0;
+ pointY = 125.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ gradient = context.createLinearGradient(212.5, 125.0, 212.5, 124.0);
+ color = "#FFFFFF";
+ gradient.addColorStop(0.0, color);
+ color = "#A9A9A9";
+ gradient.addColorStop(1.0, color);
+ context.fillStyle = gradient;
+ context.fill();
+
+ // flip
+
+ // Setup for Shadow Effect
+ color = "rgba(0.0%, 0.0%, 0.0%, 0.5)";
+ context.save();
+ context.shadowColor = color;
+ context.shadowBlur = 0.0;
+ context.shadowOffsetX = 2.0 * Math.cos(8.377) * resolution;
+ context.shadowOffsetY = 2.0 * Math.sin(8.377) * resolution;
+
+ // round
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 78.506;
+ pointY = 70.251;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 66.155;
+ pointY = 12.954;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ controlPoint1X = 59.899;
+ controlPoint1Y = 57.427;
+ controlPoint1X = (Math.round(resolution * controlPoint1X + alignStroke) - alignStroke) / resolution;
+ controlPoint1Y = (Math.round(resolution * controlPoint1Y + alignStroke) - alignStroke) / resolution;
+ controlPoint2X = 54.678;
+ controlPoint2Y = 32.277;
+ controlPoint2X = (Math.round(resolution * controlPoint2X + alignStroke) - alignStroke) / resolution;
+ controlPoint2Y = (Math.round(resolution * controlPoint2Y + alignStroke) - alignStroke) / resolution;
+ context.bezierCurveTo(controlPoint1X, controlPoint1Y, controlPoint2X, controlPoint2Y, pointX, pointY);
+ pointX = 78.506;
+ pointY = 70.251;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ gradient = context.createLinearGradient(69.301, 70.251, 69.301, 12.954);
+ gradient.addColorStop(0.0, aDarkColor);
+ gradient.addColorStop(1.0, aLightColor);
+ context.fillStyle = gradient;
+ context.fill();
+
+ // Shadow Effect
+ context.restore();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js
new file mode 100644
index 0000000..e70e3b5
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js
@@ -0,0 +1,153 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// normal.js
+// normal
+//
+// Created by Giulio Cesare Solaroli on 3/15/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Star_normalWidth = 46.0;
+var kClipperz_PM_UI_Canvas_Star_normalHeight = 46.0;
+
+function Clipperz_PM_UI_Canvas_Star_normal(canvas, aColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth + canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Star_normalWidth, canvas.height / kClipperz_PM_UI_Canvas_Star_normalHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Star_normalWidth, kClipperz_PM_UI_Canvas_Star_normalHeight);
+
+ // *
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 8.613;
+ pointY = 15.583;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 18.563;
+ pointY = 18.821;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 18.563;
+ pointY = 7.347;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 26.799;
+ pointY = 7.347;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 26.799;
+ pointY = 18.821;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 36.749;
+ pointY = 15.583;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 38.986;
+ pointY = 22.677;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 28.846;
+ pointY = 25.819;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 35.463;
+ pointY = 35.293;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 29.369;
+ pointY = 39.625;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 22.752;
+ pointY = 30.675;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 15.944;
+ pointY = 39.625;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 9.85;
+ pointY = 35.293;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 16.515;
+ pointY = 25.819;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 6.375;
+ pointY = 22.677;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 8.613;
+ pointY = 15.583;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ pointX = 42.081;
+ pointY = 77.949;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ context.fillStyle = aColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js
new file mode 100644
index 0000000..216fd24
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js
@@ -0,0 +1,156 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// close.js
+// close
+//
+// Created by Giulio Cesare Solaroli on 3/14/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Tips_closeWidth = 310.0;
+var kClipperz_PM_UI_Canvas_Tips_closeHeight = 6.0;
+
+function Clipperz_PM_UI_Canvas_Tips_close(canvas, aColor, aBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_closeWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_closeHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_closeWidth, kClipperz_PM_UI_Canvas_Tips_closeHeight);
+
+ // background
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aBackgroundColor;
+ context.fill();
+
+ // grid
+
+ // background
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aBackgroundColor;
+ context.fill();
+
+ // toggle
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 149.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 161.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 155.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 149.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aColor;
+ context.fill();
+
+ context.restore();
+}
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js
new file mode 100644
index 0000000..f1bdaa9
--- a/dev/null
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js
@@ -0,0 +1,163 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+//
+// open.js
+// open
+//
+// Created by Giulio Cesare Solaroli on 3/14/10
+// Copyright 2010 Clipperz
+// This code was generated by Opacity. You may use or modify it in any way.
+//
+
+var kClipperz_PM_UI_Canvas_Tips_openWidth = 310.0;
+var kClipperz_PM_UI_Canvas_Tips_openHeight = 6.0;
+
+function Clipperz_PM_UI_Canvas_Tips_open(canvas, aColor, aBackgroundColor)
+{
+ var context = canvas.getContext("2d");
+ var alignStroke;
+ var resolution;
+ var path;
+ var pointX;
+ var pointY;
+ var color;
+ if (window.devicePixelRatio)
+ resolution = window.devicePixelRatio;
+ else
+ resolution = 1.0;
+ resolution *= 0.5 * (canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth + canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight);
+
+ context.save();
+ context.scale(canvas.width / kClipperz_PM_UI_Canvas_Tips_openWidth, canvas.height / kClipperz_PM_UI_Canvas_Tips_openHeight);
+ context.clearRect(0.0, 0.0, kClipperz_PM_UI_Canvas_Tips_openWidth, kClipperz_PM_UI_Canvas_Tips_openHeight);
+
+ // background
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aBackgroundColor;
+ context.fill();
+
+ // grid
+
+ // background
+
+ alignStroke = 0.0;
+ context.beginPath();
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 0.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 310.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ context.fillStyle = aBackgroundColor;
+ context.fill();
+
+ // Layer 1
+
+ alignStroke = 0.0;
+ context.save();
+ context.translate(155.0, 3.0);
+ context.rotate(-3.142);
+ context.translate(-155.0, -3.0);
+ context.beginPath();
+ pointX = 149.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.moveTo(pointX, pointY);
+ pointX = 161.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 155.0;
+ pointY = 0.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ pointX = 149.0;
+ pointY = 6.0;
+ pointX = (Math.round(resolution * pointX + alignStroke) - alignStroke) / resolution;
+ pointY = (Math.round(resolution * pointY + alignStroke) - alignStroke) / resolution;
+ context.lineTo(pointX, pointY);
+ context.closePath();
+ color = "#FFFFFF";
+ context.fillStyle = color;
+ context.fill();
+ context.restore();
+
+ context.restore();
+}