diff --git a/.sign/.manifest.tmp b/.sign/.manifest.tmp
index 6552df3..951920b 100644
--- a/.sign/.manifest.tmp
+++ b/.sign/.manifest.tmp
@@ -1,4 +1,4 @@
-.git/COMMIT_EDITMSG__DEL__If4UvKpwCKVzkSRbfhig+JvSLjH1FoXhe8rrukf/WoY=
+.git/COMMIT_EDITMSG__DEL__0UtzmQB1ZW2nlb2XxSYxaRZULGy9s0DDn2H9wLrdTA8=
.git/HEAD__DEL__9vK5RfbEEbAro9qces6I3PcbavZbouDYmqgpAAQrWhA=
.git/config__DEL__au1NdB+8TXr2Rmn1de8XxOJ7XvRR2HhR61c9MY4LTcg=
.git/description__DEL__hatsFj1DoX6pz3eIMIvKFGbxsKjRzJLibpv2PaQGKu4=
@@ -13,13 +13,13 @@
.git/hooks/pre-receive.sample__DEL__pMPSuce7P9jRRBwxvU7nGlldZrRPz0ndsxAlIyAWmYk=
.git/hooks/prepare-commit-msg.sample__DEL__6d3KpBif3dJe2X/Ix4nsp7bKFjkLI5KuMnbwyOGqRhk=
.git/hooks/update.sample__DEL__dRwDcyACTsLuJ1fz/64LEK0slGNnaE5wWdTcl+rH5DE=
-.git/index__DEL__rOuEvL2uYs09DB6RY1YHuSX6EuliHrA59IcqjMSFi8s=
+.git/index__DEL__ORPU2uBnVg/LAARTyCr8tqUewoXLn+0NatGrBiJOcFc=
.git/info/exclude__DEL__ZnH+g7egfIky7okWTR8nk7IxgFjri5jcXAbuClo7DsE=
-.git/logs/HEAD__DEL__0pObdvtd8sS6EgjGVhLlQucIjT6CBMHidnFrgD/Nrzk=
+.git/logs/HEAD__DEL__jKVBtQOBaM24p9fsjNPFjcTLIz9DSchf180gxGNsneY=
.git/logs/refs/heads/dev__DEL__q20Bv7wjBkQHG9fg8cC64InwcBytMlrnZqO32+lD1LE=
-.git/logs/refs/heads/master__DEL__9noZilKzpJNOhJ0Hb9OX2cXKZYG0FXdZO+kUsKM1pn8=
+.git/logs/refs/heads/master__DEL__MEkUz66a77lH7E+QVTF+qMq9d4jDs3yIkNi5HBX035g=
.git/logs/refs/remotes/origin/dev__DEL__wvti+A+HmltuMEEaFVgwS4Xh16oYsmcKLCml+4mFyy8=
-.git/logs/refs/remotes/origin/master__DEL__2PlqlV9Lby0oEWaD1BaFbRNn5iyYH+/ro4UnAO7qaOg=
+.git/logs/refs/remotes/origin/master__DEL__3rRj0Ge9+Nkmq4rA6UD/EfOyDAf9AQfip3tMiVdwpec=
.git/objects/02/741fe0d44ace36d88f500de55fe02f60e39681__DEL__cVGnHJSbIxxTbHZ4cc0XEetbMGr4Ig04SwFvCJL0tcg=
.git/objects/03/240c2d93bda6a3706feaeb68273e9a270e432c__DEL__Ms6qdss7hkzXr1x2TOTA2cWJgps+JGTzSg5ipDkyC5E=
.git/objects/05/bd71b6ec2c1982d1e8a5653073281994564ae8__DEL__PXNsl0l7EuMPFASARrf2c4vkfoU8MqkL51Cf4LHE3Ik=
@@ -34,8 +34,10 @@
.git/objects/2d/64341eef53052d2dacc5f5a4ad01c75b8dd652__DEL__dk7aYwpCa5ILFLFs53nmgi7a/fhAWv4OpIqistb4Qm4=
.git/objects/33/67b3daa6e81b654716813fa33ffd6a20c7f370__DEL__6QULNx552KmOJjqXf9j/gdUWqSUkA3lQihi7Zxe0v9k=
.git/objects/3b/d5d0a4803967bc0bf72a7dd66d7e292ed2e586__DEL__NWl0p1AAhqGIhpiPNnefVL7uzkqYFG1ZET6Oni7l45M=
+.git/objects/49/496e1a19c44586b61915f6b716f9b4dfe5f053__DEL__aGSZypqKfEIjZK3p84gz/rWJF6x5Z0xxpiwpm0UIBpo=
.git/objects/4a/b357c7634f49e522aeaaedefa83c4ff08443a9__DEL__a0Cz4lWC+0xWCzZUYUQL5O/bt35C7pRZ1XW3fOKXBBo=
.git/objects/4b/c066ebaf4dc25e55d53f01cf3b58b1acf4eeac__DEL__f6PxYVuOzCEkwYdiFoTHy9qr/AuMjlE7eNGqr2N2Ok4=
+.git/objects/4c/825cfc182d8c37a99229df7c319b939cbefcfe__DEL__70NBx2PRD46GwLI798K52XHYCCGDQS9609jvU+a+9hM=
.git/objects/4e/35166f13f37f8c3aed30d3019174573a026f4a__DEL__QvXy5hjAaFV6M3+qW1WfnrX4ZyFuiBAqpnCqfAheYXE=
.git/objects/53/f31f54130c9a3441480f9e416f805437fb71c9__DEL__TI9vZZsmF1Ydh6O/gd51GoLyXZZyto7wjobmKY2woQo=
.git/objects/58/02e94b1cd8db05ccc5aa2dad551e7f5ec63174__DEL__Jgxge3taYKB1/6zR1DI5xqTEo+Xf97cD0Ji/7S1AiKY=
@@ -43,6 +45,7 @@
.git/objects/5d/dc6bd5f24cf4e67a53e20384dfc868809d10b3__DEL__zIPachBagXO0J8zFADVIaaSzJRpTr24o5b0VEKPnHS0=
.git/objects/60/28ff1af887074abf9799decdc4f53ea65de0d2__DEL__VfUv5Gv6hfBt9kQzeU1Q4cKplXBpkMYa22LwZ7jxCs0=
.git/objects/62/c798785cfaedd6992eee3fabeed71d790f78a9__DEL__RlbNnRkGavIiygXlfALbEtC8CSN19LfQ4x5Y92GdKfQ=
+.git/objects/65/52df39f388ca27532fe33ddad968f78284d1b7__DEL__xgVfp/AbsWdR6aLsaJfH2NPufO47n+MtTNCu/oRuR14=
.git/objects/66/9e339e0d59da886483c0834d9397a29b53227a__DEL__+nhf1Io/Q9w8bVqA9LcSp1XFxyGSBjidM2mQC0g7m94=
.git/objects/66/de0dcf1f16eb3dfe1aedf78790b4e002c08516__DEL__FZmqOATlAZ5v6hGivuWkZ9NLyIA0B464HQ9hvqMUJBQ=
.git/objects/68/66c8e9e1bc747421d9ad8439d036a0a7afb1a0__DEL__vcUPYwNJyv+DsVO+MeVNXiOGLKNMjJsO/UctNZFiDOg=
@@ -51,8 +54,10 @@
.git/objects/6f/2bf25b4a2c42093a219e1f448e60df4691edd9__DEL__GIQkHw2nvNnV/t1FJI6M9nGukDfi3PkzR+YQVBdkoew=
.git/objects/73/714ebb756c954ebfb4e7232985c020e2515293__DEL__AUESNd0REeJq4JRjlJ2qp3wnKhuh/aN5JYpO01kppFU=
.git/objects/78/fdbb1d64048da4271091ddb1768f8670919069__DEL__3hbwK3TLaW1TVvT461gSaigsje2W/Ol74Ps+ElGSyIQ=
+.git/objects/7b/a4de53b4b4c9817ee311a5255e0b1c3d882d2f__DEL__8LW0HS2vKrstrtS0JkpW/MZUpYd6RGUQnC9Vq3OZAgU=
.git/objects/7c/a3e1f9fd26cc61f712e13322b05c7e24ce1813__DEL__HvEW3s9pr5lX/U/e4ZOjuGQ5UKstesDe/4eJic1wvlo=
.git/objects/82/2ac63bb0a8e9ab24ff26a1aff59635c79b038c__DEL__og3HdYsG8csdD7xUnIqOn7Lq9lyAlwRjG2XXXBZ+Cm4=
+.git/objects/83/59de8d42ad6fe5fbab8aebdf5401a42ff60cd1__DEL__SSMX1i2uI8gZtbMt6DyZHNYo6dvP7yczWP13xfS/qqw=
.git/objects/84/f503801400f81a402f3fb3f2830ec00ab4c630__DEL__evQo0GymDPIEFqd5BUKUqhrrNQXb9nr3wqTmCHV+J48=
.git/objects/86/49fa565d87dd3c332e8e318c779b8e53ffea0b__DEL__C3Xw+yuUDSdezXAhqzBXlRS1SPXOSn2AyLwueNf7ug4=
.git/objects/8a/1d8c688268b802bd5ad18a64b883016b132076__DEL__fB08qAMNyvrNiut/zN7hw0epaAbaQDnXxDBRQx7HGlE=
@@ -61,10 +66,13 @@
.git/objects/94/d035297d32719c863d2bd49b285d1f5775703d__DEL__xkjG1a7P7VoVxIIlO2M+AKBYr77uohSmSrRN8AJzs5I=
.git/objects/97/624229cdd097bd7b0e505d478fb0a8955a80f7__DEL__RJEDk98YVKzW5x+7RlBsjhLPB9/wC8pi5Q91T4KWhMw=
.git/objects/99/96115961d2aa418fb03ff90d529f642f4f7261__DEL__3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY=
+.git/objects/9a/74540393adea282b7b01c01a403f85e611c788__DEL__iW4P0jXFYYZIzotFyAxh4PSJUhY4hc1mm2E+Y6ylLFg=
.git/objects/9d/ab2d1408775ca4094f6806e481cf85e8709ec4__DEL__8dWV9Unqdt7vmdOSzL5TGY9RETmJ1B9ZpX7jLIO3qBs=
.git/objects/9f/29e0dab7efd2ce2bda4adb262584b22321e534__DEL__KJdBI+69yuhRSrTwXepr5NJxdIXgmy1V+2rtaOmYYok=
.git/objects/9f/8c12f57065dff219dd33568a55e81ffee69f4e__DEL__lf8xF9EWtMhpmIGzqX+k8LnCZI0pmzyvQrchmCzvxGg=
.git/objects/a5/5db3f213c6fd9f1611473c99181cb6bd8ce9f2__DEL__Hljb7WQV6HW2SlXWnf79Z0JHFEEXiF854oWTNGeoqG0=
+.git/objects/a6/bc412a33f362bd9ace7665ab3685485f0c4317__DEL__5GPHKyY55l27MwfkbPIQ9B5PntCJrDmUT/DkO0rl8hE=
+.git/objects/a9/d3dcbd4f843cda902742f06e32b9dd18867332__DEL__EctDxWIH+mORkQkqEobAIposOPQ5h1l5hcgwPX4t+vE=
.git/objects/b0/2c87ba502c06af3fb09ba7424e5846b1ba7575__DEL__9Ixa5p/uNZxKIdg2yDMUNp0wqic/7TnjdkMVm1eIqvs=
.git/objects/b0/97cff9350a4425e6159c455a26787f29243576__DEL__4zBEC7z3sZDhmhKOLkXJZ7/ecu7UN+W3I9kkaOUsMk4=
.git/objects/b1/2ee3c3c409d741f8492f0c251a8e1b6ef826fd__DEL__t0dDpRgTD86E+VnD8dOxzR8S2jH927gD3+OU7JijYl4=
@@ -85,10 +93,11 @@
.git/objects/e6/e64a7a10f9c3f4c2218db906b18d6c96f153e1__DEL__ORQK4eEcZ9zLwMxPa08xowgH4TMPKDOsAJxkYscIos8=
.git/objects/f0/fc0dd5e890f0a3929c22ac364c71e6623f4e8e__DEL__zgSOtLXhZmKmL98vDoytepbOXYqk43npI3T5HsIbgjc=
.git/objects/f8/04e46ae59b95fa82280d55e65c5deb7c23619a__DEL__nGm01CzTeVlO+cEBhatCJfqvefpI81P907olWncqhbk=
+.git/objects/fc/f3919d3b8e258f9e3bb0d698571e39d6736248__DEL__d7th5gSB33b1lhMhAY/fVAJdnL3sV+GK6VLWJYMB7i8=
.git/refs/heads/dev__DEL__EIvs3h1xxNea4PFAxSSkyksJf7F8PzmIYmkW20Ddo64=
-.git/refs/heads/master__DEL__fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+.git/refs/heads/master__DEL__TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
.git/refs/remotes/origin/dev__DEL__EIvs3h1xxNea4PFAxSSkyksJf7F8PzmIYmkW20Ddo64=
-.git/refs/remotes/origin/master__DEL__fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+.git/refs/remotes/origin/master__DEL__TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
LICENSE.APLv2__DEL__z8d0m5b2O9McPEK1xHG/dWgUBT6EfBDz6wA0F7xSPTA=
NOTICE__DEL__ijjaB8GEO5OJP/jK6n7Hr3vZFI9gy8ocoDhviViKNnU=
README.md__DEL__47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
@@ -97,6 +106,6 @@ css/style.css__DEL__YCx4tiqoai276nR9sDZsPUcn0/z3Xi4XYMDXIcnGRhU=
icon.jpg__DEL__2ZXXmZkVOzH42v5SF/c73PYgxmcHHRii2/gn73UUhlo=
icon.png__DEL__kd617JYkX8IEUQERd72gL14zj6pgNVcKiSRAFQz6HX8=
index.html__DEL__CdntWzqB8DQYZKIF68hQqqZVLQPbLRf1hXjozO+agxA=
-js/app.js__DEL__pn+BgYKiYnP40fp9amYrJvG/ksuToFs3d5Uolu/wnH8=
+js/app.js__DEL__KwYj3MbJUIv6eUkRR3bgZR0qICdD5G8Q8GZUG15S1Rg=
version.txt__DEL__jFS/q38a6b0acUjq5B57Co9K03JuDKxw+COi1F255gw=
-author-signature.xml__DEL__i5LdJFjTtonYJsYW4BDPEf6sR53/7HBmiMUs1FQP9L4=
+author-signature.xml__DEL__xSMT9koaQGLWaI27U8I/ENyfZYgCNld3eDcS063dBiE=
diff --git a/.sign/author-signature.xml b/.sign/author-signature.xml
index 4c825cf..4741a3c 100644
--- a/.sign/author-signature.xml
+++ b/.sign/author-signature.xml
@@ -4,7 +4,7 @@
-If4UvKpwCKVzkSRbfhig+JvSLjH1FoXhe8rrukf/WoY=
+0UtzmQB1ZW2nlb2XxSYxaRZULGy9s0DDn2H9wLrdTA8=
@@ -64,7 +64,7 @@
-rOuEvL2uYs09DB6RY1YHuSX6EuliHrA59IcqjMSFi8s=
+ORPU2uBnVg/LAARTyCr8tqUewoXLn+0NatGrBiJOcFc=
@@ -72,7 +72,7 @@
-0pObdvtd8sS6EgjGVhLlQucIjT6CBMHidnFrgD/Nrzk=
+jKVBtQOBaM24p9fsjNPFjcTLIz9DSchf180gxGNsneY=
@@ -80,7 +80,7 @@
-9noZilKzpJNOhJ0Hb9OX2cXKZYG0FXdZO+kUsKM1pn8=
+MEkUz66a77lH7E+QVTF+qMq9d4jDs3yIkNi5HBX035g=
@@ -88,7 +88,7 @@
-2PlqlV9Lby0oEWaD1BaFbRNn5iyYH+/ro4UnAO7qaOg=
+3rRj0Ge9+Nkmq4rA6UD/EfOyDAf9AQfip3tMiVdwpec=
@@ -146,6 +146,10 @@
NWl0p1AAhqGIhpiPNnefVL7uzkqYFG1ZET6Oni7l45M=
+
+
+aGSZypqKfEIjZK3p84gz/rWJF6x5Z0xxpiwpm0UIBpo=
+
a0Cz4lWC+0xWCzZUYUQL5O/bt35C7pRZ1XW3fOKXBBo=
@@ -154,6 +158,10 @@
f6PxYVuOzCEkwYdiFoTHy9qr/AuMjlE7eNGqr2N2Ok4=
+
+
+70NBx2PRD46GwLI798K52XHYCCGDQS9609jvU+a+9hM=
+
QvXy5hjAaFV6M3+qW1WfnrX4ZyFuiBAqpnCqfAheYXE=
@@ -182,6 +190,10 @@
RlbNnRkGavIiygXlfALbEtC8CSN19LfQ4x5Y92GdKfQ=
+
+
+xgVfp/AbsWdR6aLsaJfH2NPufO47n+MtTNCu/oRuR14=
+
+nhf1Io/Q9w8bVqA9LcSp1XFxyGSBjidM2mQC0g7m94=
@@ -214,6 +226,10 @@
3hbwK3TLaW1TVvT461gSaigsje2W/Ol74Ps+ElGSyIQ=
+
+
+8LW0HS2vKrstrtS0JkpW/MZUpYd6RGUQnC9Vq3OZAgU=
+
HvEW3s9pr5lX/U/e4ZOjuGQ5UKstesDe/4eJic1wvlo=
@@ -222,6 +238,10 @@
og3HdYsG8csdD7xUnIqOn7Lq9lyAlwRjG2XXXBZ+Cm4=
+
+
+SSMX1i2uI8gZtbMt6DyZHNYo6dvP7yczWP13xfS/qqw=
+
evQo0GymDPIEFqd5BUKUqhrrNQXb9nr3wqTmCHV+J48=
@@ -254,6 +274,10 @@
3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY=
+
+
+iW4P0jXFYYZIzotFyAxh4PSJUhY4hc1mm2E+Y6ylLFg=
+
8dWV9Unqdt7vmdOSzL5TGY9RETmJ1B9ZpX7jLIO3qBs=
@@ -270,6 +294,14 @@
Hljb7WQV6HW2SlXWnf79Z0JHFEEXiF854oWTNGeoqG0=
+
+
+5GPHKyY55l27MwfkbPIQ9B5PntCJrDmUT/DkO0rl8hE=
+
+
+
+EctDxWIH+mORkQkqEobAIposOPQ5h1l5hcgwPX4t+vE=
+
9Ixa5p/uNZxKIdg2yDMUNp0wqic/7TnjdkMVm1eIqvs=
@@ -350,13 +382,17 @@
nGm01CzTeVlO+cEBhatCJfqvefpI81P907olWncqhbk=
+
+
+d7th5gSB33b1lhMhAY/fVAJdnL3sV+GK6VLWJYMB7i8=
+
EIvs3h1xxNea4PFAxSSkyksJf7F8PzmIYmkW20Ddo64=
-fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
@@ -364,7 +400,7 @@
-fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
@@ -400,7 +436,7 @@
-pn+BgYKiYnP40fp9amYrJvG/ksuToFs3d5Uolu/wnH8=
+KwYj3MbJUIv6eUkRR3bgZR0qICdD5G8Q8GZUG15S1Rg=
@@ -415,11 +451,11 @@
-cfa29AxcYNJE4l4ZqRgfsomvVMnAV4qomOmPnkgrY2llEpGnYwG68GSk/jOIp49edWRGrhHIgzck
-5EAwK76BEappt+s6zlWLbVH+TNrWava9L+2VhdBhiz1Fo+XRhagSlTv43IafcBPCgn3vayn2toCg
-25x9Q51+WkvZj7qx7Ko8uYv0EFJE38uAfa1GyTxNpTnwQcg78nW8St0YC9XRWpp3XoREwCx41/fF
-ZrKjysD8lCyexFmhSeH7KRUAUpefoxk9ivjhiOBq87gebI+snuzuFHAcw5i/kXH7O+Oh+aepC0cJ
-emcQpDqZUBWjKpr0LJ31ti8mrN8CA99UbbYWNQ==
+R+Ft9c008dXiVwnZ57AhS/687siiB41Uv2Ao83EO3efowuZZw/KHnNznlkX6LR2VyrhRD83GTY/E
+VNqnH1Kyf9VLuTIUSLviIqyRQVT2YRwdLRzYcmrEdkqRf+rBlq9MR6K8B/WvTB4n15KVxoOrNYzP
+1ozM2ZU8QPA0nUux+vAi6eSotj9BuSldpJasS5Lz60JcHVvVXNJm6pbVD8Sr6r5P8DTjQmRDrm4k
+kmEru9qVR/2aL1/1HBGo9WcG8lIpYKt9+HkZWT8pCTxi4DAstskGoebMPw6g2ClPYK18nXumSzku
+gCJsXJLqH5hlBvLpi1nAVBvXuRwiJV3JsKaMHA==
diff --git a/.sign/signature1.xml b/.sign/signature1.xml
index 9a74540..e851f06 100644
--- a/.sign/signature1.xml
+++ b/.sign/signature1.xml
@@ -4,7 +4,7 @@
-If4UvKpwCKVzkSRbfhig+JvSLjH1FoXhe8rrukf/WoY=
+0UtzmQB1ZW2nlb2XxSYxaRZULGy9s0DDn2H9wLrdTA8=
@@ -64,7 +64,7 @@
-rOuEvL2uYs09DB6RY1YHuSX6EuliHrA59IcqjMSFi8s=
+ORPU2uBnVg/LAARTyCr8tqUewoXLn+0NatGrBiJOcFc=
@@ -72,7 +72,7 @@
-0pObdvtd8sS6EgjGVhLlQucIjT6CBMHidnFrgD/Nrzk=
+jKVBtQOBaM24p9fsjNPFjcTLIz9DSchf180gxGNsneY=
@@ -80,7 +80,7 @@
-9noZilKzpJNOhJ0Hb9OX2cXKZYG0FXdZO+kUsKM1pn8=
+MEkUz66a77lH7E+QVTF+qMq9d4jDs3yIkNi5HBX035g=
@@ -88,7 +88,7 @@
-2PlqlV9Lby0oEWaD1BaFbRNn5iyYH+/ro4UnAO7qaOg=
+3rRj0Ge9+Nkmq4rA6UD/EfOyDAf9AQfip3tMiVdwpec=
@@ -146,6 +146,10 @@
NWl0p1AAhqGIhpiPNnefVL7uzkqYFG1ZET6Oni7l45M=
+
+
+aGSZypqKfEIjZK3p84gz/rWJF6x5Z0xxpiwpm0UIBpo=
+
a0Cz4lWC+0xWCzZUYUQL5O/bt35C7pRZ1XW3fOKXBBo=
@@ -154,6 +158,10 @@
f6PxYVuOzCEkwYdiFoTHy9qr/AuMjlE7eNGqr2N2Ok4=
+
+
+70NBx2PRD46GwLI798K52XHYCCGDQS9609jvU+a+9hM=
+
QvXy5hjAaFV6M3+qW1WfnrX4ZyFuiBAqpnCqfAheYXE=
@@ -182,6 +190,10 @@
RlbNnRkGavIiygXlfALbEtC8CSN19LfQ4x5Y92GdKfQ=
+
+
+xgVfp/AbsWdR6aLsaJfH2NPufO47n+MtTNCu/oRuR14=
+
+nhf1Io/Q9w8bVqA9LcSp1XFxyGSBjidM2mQC0g7m94=
@@ -214,6 +226,10 @@
3hbwK3TLaW1TVvT461gSaigsje2W/Ol74Ps+ElGSyIQ=
+
+
+8LW0HS2vKrstrtS0JkpW/MZUpYd6RGUQnC9Vq3OZAgU=
+
HvEW3s9pr5lX/U/e4ZOjuGQ5UKstesDe/4eJic1wvlo=
@@ -222,6 +238,10 @@
og3HdYsG8csdD7xUnIqOn7Lq9lyAlwRjG2XXXBZ+Cm4=
+
+
+SSMX1i2uI8gZtbMt6DyZHNYo6dvP7yczWP13xfS/qqw=
+
evQo0GymDPIEFqd5BUKUqhrrNQXb9nr3wqTmCHV+J48=
@@ -254,6 +274,10 @@
3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY=
+
+
+iW4P0jXFYYZIzotFyAxh4PSJUhY4hc1mm2E+Y6ylLFg=
+
8dWV9Unqdt7vmdOSzL5TGY9RETmJ1B9ZpX7jLIO3qBs=
@@ -270,6 +294,14 @@
Hljb7WQV6HW2SlXWnf79Z0JHFEEXiF854oWTNGeoqG0=
+
+
+5GPHKyY55l27MwfkbPIQ9B5PntCJrDmUT/DkO0rl8hE=
+
+
+
+EctDxWIH+mORkQkqEobAIposOPQ5h1l5hcgwPX4t+vE=
+
9Ixa5p/uNZxKIdg2yDMUNp0wqic/7TnjdkMVm1eIqvs=
@@ -350,13 +382,17 @@
nGm01CzTeVlO+cEBhatCJfqvefpI81P907olWncqhbk=
+
+
+d7th5gSB33b1lhMhAY/fVAJdnL3sV+GK6VLWJYMB7i8=
+
EIvs3h1xxNea4PFAxSSkyksJf7F8PzmIYmkW20Ddo64=
-fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
@@ -364,7 +400,7 @@
-fs5KqXTQ2wG2taX9fbsDbEjAvOZzBrSuYdubB9dtFlk=
+TQyaXJWyglaOruKTOW7VIPIQVaoTdqnc1bOr24yqb8s=
@@ -380,7 +416,7 @@
-i5LdJFjTtonYJsYW4BDPEf6sR53/7HBmiMUs1FQP9L4=
+xSMT9koaQGLWaI27U8I/ENyfZYgCNld3eDcS063dBiE=
@@ -404,7 +440,7 @@
-pn+BgYKiYnP40fp9amYrJvG/ksuToFs3d5Uolu/wnH8=
+KwYj3MbJUIv6eUkRR3bgZR0qICdD5G8Q8GZUG15S1Rg=
@@ -419,11 +455,11 @@
-FL55NCx5pBIhMWio7JMOrvQMi2nZikZrMM5aHLTC65SE/NuRiqEZHnfmSFldMLrq79K80HLsX9Vs
-YUuu7YcRa5nPiT/wm+gaIkvH16tMM5fkdL/14bKr0POoDeiqgODoEApjoT+e/fuzFHOu1kxFRlIg
-6YNrri/4NXGioJer8F6zbbwyGPdRtkFpKYYLLWwifCDu01ULPl3ePELUKEafiU5PUi3eQ7n0nojR
-D5cDmt7X24vbt20wC/3W/wIs5xUDdRZiloLj16RlTu9k6RkyAN9cdOYNA8dsHA1XgiBiTrxuq+2/
-F6bhh2/wkXcs60BUnhbA8NqDcEWgNv5dHzaB+Q==
+OXlTUDqEKYQawnkNj+BXkKe+Q4i7aWYpBm67WsiV643m2thqC1MWdfAFwjIzXYmYsohD5uJOT3SU
+igKw75/10qoHXPhCgsp47Dat6zQserFU4uclRNEA36NAmeZOFopRbV4DIh7Qcod38UaaQKAQLFCI
+QS3zQgPVp/h+bKuRAZQLS7ptzULesy/pIwZMVOkjRRabX2M4EHrKjIMbJ+8tEhr71eXwB6ObmYmx
+ciriscWtLv0sUsDtSmln3Xt/7NoVRNbhkDl2XXOanf3UV7kXn2xo9jcQms84e87x5AkYuuUGVxWx
+vtMJOwqVnwihQU2COuuzQErpVFnjpmPvEuNPlw==
diff --git a/CalendarWatch.wgt b/CalendarWatch.wgt
index fcf3919..42370e3 100644
Binary files a/CalendarWatch.wgt and b/CalendarWatch.wgt differ
diff --git a/js/app.js b/js/app.js
index a9d3dcb..3d9197d 100644
--- a/js/app.js
+++ b/js/app.js
@@ -14,8 +14,12 @@
* limitations under the License.
*/
+
+/* 'downloads' for debugging,
+ * 'wgt-private' for any release */
+var STORAGE_SPACE = "downloads";
var events = null;
-var deviceId = null;
+var deviceFingerprint = null;
var eventsTimeStamp = 0;
(function() {
@@ -38,12 +42,18 @@ var eventsTimeStamp = 0;
console.log(exc.message)
}
- if(dirfile == null)
- return null;
+ // if file not existed, call callback with null
+ if(dirfile == null) {
+ callback(null)
+ return;
+ } else {
+
+ // if file was found, call callback with json
dirfile.openStream("r", function(fs) {
callback(JSON.parse(fs.read(dirfile.fileSize)));
fs.close();
});
+ }
}
function onerror(e){
@@ -51,7 +61,7 @@ var eventsTimeStamp = 0;
}
function onsuccessPermission(){
- tizen.filesystem.resolve("wgt-private", onsuccess, onerror, "rw");
+ tizen.filesystem.resolve(STORAGE_SPACE, onsuccess, onerror, "rw");
}
function onErrorPermission(e){
@@ -61,7 +71,7 @@ var eventsTimeStamp = 0;
tizen.ppm.requestPermission("http://tizen.org/privilege/mediastorage", onsuccessPermission, onErrorPermission);
}
- function readJSON(path) {
+ function readJSON() {
/* - requests permission to view media storage
* - resolves the file 'calendarevents'
* - opens stream and reads entire file as json
@@ -70,25 +80,88 @@ var eventsTimeStamp = 0;
getJsonFile("calendarevents", function(eventlist) {events = eventlist;});
console.log(events);
}
-
- function getDeviceID() {
- // check if device id set already as global, if it is return
- if(deviceId != null)
- return;
-
- // otherwise, check if there is a devicefingerprint file in wft-private
- getJsonFile("devicefingerprint", function(df) {deviceId = df;})
- // if there is, open it up and get your device ID from it
-
- // otherwise, ask the longitude server for a device fingerprint file
+
+ function getNewFingerprintFromServer() {
+ console.log("fingerprintfromserver");
+ getFileFromServer("/devicefingerprint.json", function() {
+ console.log("1");
+ getJsonFile("devicefingerprint", function(df) {devicefingerprint = df; console.log(devicefingerprint)});
+ });
}
+
+ function getDeviceFingerprint() {
+ console.log("getfingerprint");
+ // check if device id set already as global, if it is return
+ if(deviceFingerprint != null)
+ return;
+
+ // otherwise, check if there is a devicefingerprint file in wgt-private
+ // if there is, open it up and get your device ID from it
+ getJsonFile("devicefingerprint", function(df) {
+ if(df != null) {
+ deviceFingerprint = df;
+ } else {
+ // otherwise, ask the longitude server for a device fingerprint file
+ getNewFingerprintFromServer();
+ }
+ })
+
+ }
+
+ function getFileFromServer(route, callback) {
+ var server = "https://longitudecalendar.com/"
+ var downloadRequest = new tizen.DownloadRequest(server + route, STORAGE_SPACE);
+ tizen.systeminfo.getPropertyValue('NETWORK', function(networkInfo) {
+ if (networkInfo.networkType === 'NONE') {
+ console.log('Network connection is not available.Download is not possible.');
+ downloadRequest = null;
+ }
+ });
+
+ var listener = {
+ /* When the download progresses (interval is platform-dependent) */
+ onprogress: function(id, receivedSize, totalSize) {
+ console.log('progress for id: ' + id);
+ },
+
+ /* When the user pauses the download */
+ onpaused: function(id) {
+ console.log('Paused with id: ' + id);
+ },
+
+ /* When the user cancels the download */
+ oncanceled: function(id) {
+ console.log('Canceled with id: ' + id);
+ },
+
+ /* When the download is completed */
+ oncompleted: function(id, fullPath) {
+ console.log('Completed with id: ' + id + ', full path: ' + fullPath);
+ callback();
+ },
+
+ /* When the download fails */
+ onfailed: function(id, error) {
+ console.log('Failed with id: ' + id + ', error name: ' + error.name);
+ }
+ };
+ downloadId = tizen.download.start(downloadRequest, listener);
+ }
function getJSON() {
- /*if(deviceId == null)
- return;
- */
- var downloadRequest = new tizen.DownloadRequest('https://longitudecalendar.com/userinfo/107971745944668140075/calendarevents.json', 'wgt-private');
+ if(deviceFingerprint == null) {
+ getDeviceFingerprint();
+ return false;
+ }
+
+
+ console.log(deviceFingerprint);
+ console.log(deviceFingerprint.deviceId);
+ getFileFromServer("userinfo/" + deviceFingerprint.deviceId + "/calendarevents.json", readJSON);
+ return true;
+
+ var downloadRequest = new tizen.DownloadRequest('https://longitudecalendar.com/userinfo/107971745944668140075/calendarevents.json', STORAGE_SPACE);
tizen.systeminfo.getPropertyValue('NETWORK', function(networkInfo) {
if (networkInfo.networkType === 'NONE') {
console.log('Network connection is not available.Download is not possible.');
@@ -116,7 +189,7 @@ var eventsTimeStamp = 0;
/* When the download is completed */
oncompleted: function(id, fullPath) {
console.log('Completed with id: ' + id + ', full path: ' + fullPath);
- readJSON(fullPath);
+ readJSON();
},
/* When the download fails */
@@ -390,7 +463,6 @@ var eventsTimeStamp = 0;
// Draw the text for date
// renderText(ctxContent, date, center.x, center.y + (watchRadius * 0.5), 25, "#999999");
- console.log(events);
if(events == null)
return;
@@ -454,8 +526,8 @@ var eventsTimeStamp = 0;
var currentTime = d.getTime();
if(eventsTimeStamp + offset_ms < currentTime){
getJSON();
- eventsTimeStamp = currentTime;
- }
+ eventsTimeStamp = currentTime;
+ }
}
@@ -514,7 +586,7 @@ var eventsTimeStamp = 0;
// Update the content of the watch every second
setInterval(function() {
drawWatchContent();
- updateCalendar(600000);
+ updateCalendar(5000); //60000 -> 10 minutes
}, 1000);
}