Compare commits

...

17 Commits

Author SHA1 Message Date
Carmine De Rosa e07834eaa8 V1.0.1 7 years ago
Carmine De Rosa 85a5e3b516 add socket.io 7 years ago
Carmine De Rosa 042ab03616 fine tuning 7 years ago
Carmine De Rosa a6799108fd add login 7 years ago
Carmine De Rosa 1099e007c9 add monitoring 7 years ago
Carmine De Rosa ca4af11b16 add training 7 years ago
Carmine De Rosa d7c80964bd add session closer 7 years ago
Carmine De Rosa 8aab2813da complete animations 7 years ago
Carmine De Rosa 38faff497c add clouds animation 7 years ago
Carmine De Rosa f79fb485c6 add multiple selection 7 years ago
Carmine De Rosa db42c28255 generalization 7 years ago
Carmine De Rosa c9801acce2 add compatibility 7 years ago
Carmine De Rosa b7e2b6d718 drag once check 7 years ago
Carmine De Rosa 9ee3fdcd80 add drag-n-drop 7 years ago
Carmine De Rosa dc8af9284d upadte gitignore 7 years ago
Carmine De Rosa 76f9af1349 add dropdown 7 years ago
Carmine De Rosa 973194bcbe Merge branch 'master' into develop 7 years ago
  1. 2
      .gitignore
  2. BIN
      TMP/COZe - Negozio Livelli.pdf
  3. BIN
      TMP/COZe-Layout-PDF/path2173.png
  4. 0
      TMP/COZeAnimDemo/HTML+JS/loading.js
  5. BIN
      TMP/g46375.png
  6. BIN
      TMP/loader_anim.zip
  7. BIN
      TMP/loader_anim/loader_anim/.DS_Store
  8. 39
      TMP/loader_anim/loader_anim/countUp-jquery.js
  9. 246
      TMP/loader_anim/loader_anim/countUp.js
  10. 321
      TMP/loader_anim/loader_anim/loader.svg
  11. 61
      TMP/loader_anim/loader_anim/test.html
  12. BIN
      TMP/review coze per carmine.pptx
  13. BIN
      TMP/smartwatch.png
  14. BIN
      TMP/store.png
  15. 57
      compatibility.php
  16. 1221
      css/styles.css
  17. 42
      header.php
  18. BIN
      images/avatar/luca.png
  19. BIN
      images/avatar/sara.png
  20. 257
      images/loader.svg
  21. 257
      images/loader2.svg
  22. BIN
      images/people/fabio.png
  23. BIN
      images/people/luca.png
  24. BIN
      images/people/lucaSel.png
  25. BIN
      images/people/lucia.png
  26. BIN
      images/people/maria.png
  27. BIN
      images/people/mariaSel.png
  28. BIN
      images/people/paolo.png
  29. BIN
      images/people/paoloSel.png
  30. BIN
      images/people/sarah.png
  31. BIN
      images/people/sarahSel.png
  32. BIN
      images/phone.png
  33. BIN
      images/photo-compare.jpg
  34. BIN
      images/photo-compare2.jpg
  35. BIN
      images/smartwatch.png
  36. BIN
      images/store.png
  37. BIN
      images/video.png
  38. 26
      index.php
  39. 33
      js/compatibility.js
  40. 1060
      js/loading.js
  41. 83
      js/modules.js
  42. 54
      js/monitoring-intern.js
  43. 75
      js/monitoring-seller.js
  44. 91
      js/plans.js
  45. 58
      js/scripts.js
  46. 157
      js/training-pull.js
  47. 90
      js/training-push.js
  48. 14
      login.php
  49. 141
      modules.php
  50. 48
      monitoring-intern.php
  51. 60
      monitoring-seller.php
  52. 1
      node_modules/.bin/mime
  53. 212
      node_modules/accepts/HISTORY.md
  54. 23
      node_modules/accepts/LICENSE
  55. 135
      node_modules/accepts/README.md
  56. 231
      node_modules/accepts/index.js
  57. 77
      node_modules/accepts/package.json
  58. 2
      node_modules/after/.npmignore
  59. 12
      node_modules/after/.travis.yml
  60. 19
      node_modules/after/LICENCE
  61. 115
      node_modules/after/README.md
  62. 28
      node_modules/after/index.js
  63. 63
      node_modules/after/package.json
  64. 120
      node_modules/after/test/after-test.js
  65. 21
      node_modules/array-flatten/LICENSE
  66. 43
      node_modules/array-flatten/README.md
  67. 64
      node_modules/array-flatten/array-flatten.js
  68. 64
      node_modules/array-flatten/package.json
  69. 17
      node_modules/arraybuffer.slice/.npmignore
  70. 18
      node_modules/arraybuffer.slice/LICENCE
  71. 8
      node_modules/arraybuffer.slice/Makefile
  72. 17
      node_modules/arraybuffer.slice/README.md
  73. 29
      node_modules/arraybuffer.slice/index.js
  74. 44
      node_modules/arraybuffer.slice/package.json
  75. 227
      node_modules/arraybuffer.slice/test/slice-buffer.js
  76. 7
      node_modules/async-limiter/.travis.yml
  77. 8
      node_modules/async-limiter/LICENSE
  78. 1
      node_modules/async-limiter/coverage/coverage.json
  79. 73
      node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html
  80. 246
      node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html
  81. 182
      node_modules/async-limiter/coverage/lcov-report/base.css
  82. 73
      node_modules/async-limiter/coverage/lcov-report/index.html
  83. 1
      node_modules/async-limiter/coverage/lcov-report/prettify.css
  84. 1
      node_modules/async-limiter/coverage/lcov-report/prettify.js
  85. BIN
      node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png
  86. 156
      node_modules/async-limiter/coverage/lcov-report/sorter.js
  87. 74
      node_modules/async-limiter/coverage/lcov.info
  88. 67
      node_modules/async-limiter/index.js
  89. 69
      node_modules/async-limiter/package.json
  90. 132
      node_modules/async-limiter/readme.md
  91. 1
      node_modules/backo2/.npmignore
  92. 12
      node_modules/backo2/History.md
  93. 8
      node_modules/backo2/Makefile
  94. 34
      node_modules/backo2/Readme.md
  95. 11
      node_modules/backo2/component.json
  96. 85
      node_modules/backo2/index.js
  97. 47
      node_modules/backo2/package.json
  98. 18
      node_modules/backo2/test/index.js
  99. 3
      node_modules/base64-arraybuffer/.npmignore
  100. 19
      node_modules/base64-arraybuffer/.travis.yml

2
.gitignore

@ -0,0 +1,2 @@
/scss/.sass-cache

BIN
TMP/COZe - Negozio Livelli.pdf

Binary file not shown.

BIN
TMP/COZe-Layout-PDF/path2173.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

0
TMP/COZeAnimDemo/HTML+JS/Animazione_Demo01.js → TMP/COZeAnimDemo/HTML+JS/loading.js

BIN
TMP/g46375.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
TMP/loader_anim.zip

Binary file not shown.

BIN
TMP/loader_anim/loader_anim/.DS_Store

Binary file not shown.

39
TMP/loader_anim/loader_anim/countUp-jquery.js

@ -0,0 +1,39 @@
(function($) {
$.fn.countup = function(params) {
// make sure dependency is present
if (typeof CountUp !== 'function') {
console.error('countUp.js is a required dependency of countUp-jquery.js.');
return;
}
var defaults = {
startVal: 0,
decimals: 0,
duration: 2,
};
if (typeof params === 'number') {
defaults.endVal = params;
}
else if (typeof params === 'object') {
$.extend(defaults, params);
}
else {
console.error('countUp-jquery requires its argument to be either an object or number');
return;
}
this.each(function(i, elem) {
var countUp = new CountUp(elem, defaults.startVal, defaults.endVal, defaults.decimals, defaults.duration, defaults.options);
countUp.start();
});
return this;
};
}(jQuery));

246
TMP/loader_anim/loader_anim/countUp.js

@ -0,0 +1,246 @@
/*
countUp.js
by @inorganik
*/
// target = id of html element or var of previously selected html element where counting occurs
// startVal = the value you want to begin at
// endVal = the value you want to arrive at
// decimals = number of decimal places, default 0
// duration = duration of animation in seconds, default 2
// options = optional object of options (see below)
var CountUp = function(target, startVal, endVal, decimals, duration, options) {
var self = this;
self.version = function () { return '1.9.3'; };
// default options
self.options = {
useEasing: true, // toggle easing
useGrouping: true, // 1,000,000 vs 1000000
separator: ',', // character to use as a separator
decimal: '.', // character to use as a decimal
easingFn: easeOutExpo, // optional custom easing function, default is Robert Penner's easeOutExpo
formattingFn: formatNumber, // optional custom formatting function, default is formatNumber above
prefix: '', // optional text before the result
suffix: '', // optional text after the result
numerals: [] // optionally pass an array of custom numerals for 0-9
};
// extend default options with passed options object
if (options && typeof options === 'object') {
for (var key in self.options) {
if (options.hasOwnProperty(key) && options[key] !== null) {
self.options[key] = options[key];
}
}
}
if (self.options.separator === '') {
self.options.useGrouping = false;
}
else {
// ensure the separator is a string (formatNumber assumes this)
self.options.separator = '' + self.options.separator;
}
// make sure requestAnimationFrame and cancelAnimationFrame are defined
// polyfill for browsers without native support
// by Opera engineer Erik Möller
var lastTime = 0;
var vendors = ['webkit', 'moz', 'ms', 'o'];
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);
lastTime = currTime + timeToCall;
return id;
};
}
if (!window.cancelAnimationFrame) {
window.cancelAnimationFrame = function(id) {
clearTimeout(id);
};
}
function formatNumber(num) {
var neg = (num < 0),
x, x1, x2, x3, i, len;
num = Math.abs(num).toFixed(self.decimals);
num += '';
x = num.split('.');
x1 = x[0];
x2 = x.length > 1 ? self.options.decimal + x[1] : '';
if (self.options.useGrouping) {
x3 = '';
for (i = 0, len = x1.length; i < len; ++i) {
if (i !== 0 && ((i % 3) === 0)) {
x3 = self.options.separator + x3;
}
x3 = x1[len - i - 1] + x3;
}
x1 = x3;
}
// optional numeral substitution
if (self.options.numerals.length) {
x1 = x1.replace(/[0-9]/g, function(w) {
return self.options.numerals[+w];
})
x2 = x2.replace(/[0-9]/g, function(w) {
return self.options.numerals[+w];
})
}
return (neg ? '-' : '') + self.options.prefix + x1 + x2 + self.options.suffix;
}
// Robert Penner's easeOutExpo
function easeOutExpo(t, b, c, d) {
return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b;
}
function ensureNumber(n) {
return (typeof n === 'number' && !isNaN(n));
}
self.initialize = function() {
if (self.initialized) return true;
self.error = '';
self.d = (typeof target === 'string') ? document.getElementById(target) : target;
if (!self.d) {
self.error = '[CountUp] target is null or undefined'
return false;
}
self.startVal = Number(startVal);
self.endVal = Number(endVal);
// error checks
if (ensureNumber(self.startVal) && ensureNumber(self.endVal)) {
self.decimals = Math.max(0, decimals || 0);
self.dec = Math.pow(10, self.decimals);
self.duration = Number(duration) * 1000 || 2000;
self.countDown = (self.startVal > self.endVal);
self.frameVal = self.startVal;
self.initialized = true;
return true;
}
else {
self.error = '[CountUp] startVal ('+startVal+') or endVal ('+endVal+') is not a number';
return false;
}
};
// Print value to target
self.printValue = function(value) {
var result = self.options.formattingFn(value);
if (self.d.tagName === 'INPUT') {
this.d.value = result;
}
else if (self.d.tagName === 'text' || self.d.tagName === 'tspan') {
this.d.textContent = result;
}
else {
this.d.innerHTML = result;
}
};
self.count = function(timestamp) {
if (!self.startTime) { self.startTime = timestamp; }
self.timestamp = timestamp;
var progress = timestamp - self.startTime;
self.remaining = self.duration - progress;
// to ease or not to ease
if (self.options.useEasing) {
if (self.countDown) {
self.frameVal = self.startVal - self.options.easingFn(progress, 0, self.startVal - self.endVal, self.duration);
} else {
self.frameVal = self.options.easingFn(progress, self.startVal, self.endVal - self.startVal, self.duration);
}
} else {
if (self.countDown) {
self.frameVal = self.startVal - ((self.startVal - self.endVal) * (progress / self.duration));
} else {
self.frameVal = self.startVal + (self.endVal - self.startVal) * (progress / self.duration);
}
}
// don't go past endVal since progress can exceed duration in the last frame
if (self.countDown) {
self.frameVal = (self.frameVal < self.endVal) ? self.endVal : self.frameVal;
} else {
self.frameVal = (self.frameVal > self.endVal) ? self.endVal : self.frameVal;
}
// decimal
self.frameVal = Math.round(self.frameVal*self.dec)/self.dec;
// format and print value
self.printValue(self.frameVal);
// whether to continue
if (progress < self.duration) {
self.rAF = requestAnimationFrame(self.count);
} else {
if (self.callback) self.callback();
}
};
// start your animation
self.start = function(callback) {
if (!self.initialize()) return;
self.callback = callback;
self.rAF = requestAnimationFrame(self.count);
};
// toggles pause/resume animation
self.pauseResume = function() {
if (!self.paused) {
self.paused = true;
cancelAnimationFrame(self.rAF);
} else {
self.paused = false;
delete self.startTime;
self.duration = self.remaining;
self.startVal = self.frameVal;
requestAnimationFrame(self.count);
}
};
// reset to startVal so animation can be run again
self.reset = function() {
self.paused = false;
delete self.startTime;
self.initialized = false;
if (self.initialize()) {
cancelAnimationFrame(self.rAF);
self.printValue(self.startVal);
}
};
// pass a new endVal and start animation
self.update = function (newEndVal) {
if (!self.initialize()) return;
newEndVal = Number(newEndVal);
if (!ensureNumber(newEndVal)) {
self.error = '[CountUp] update() - new endVal is not a number: '+newEndVal;
return;
}
self.error = '';
if (newEndVal === self.frameVal) return;
cancelAnimationFrame(self.rAF);
self.paused = false;
delete self.startTime;
self.startVal = self.frameVal;
self.endVal = newEndVal;
self.countDown = (self.startVal > self.endVal);
self.rAF = requestAnimationFrame(self.count);
};
// format startVal on initialization
if (self.initialize()) self.printValue(self.startVal);
};

321
TMP/loader_anim/loader_anim/loader.svg

@ -0,0 +1,321 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="220px"
height="220px" viewBox="0 0 220 220" style="enable-background:new 0 0 220 220;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;}
.st1{fill:#A41620;}
.st2{fill:#8DF3E5;}
</style>
<g id="Ruota_x5F_04">
<animateTransform attributeName="transform"
begin="0"
attributeType="XML"
type="rotate"
from="0 110 110"
to="360 110 110"
dur="3s"
repeatCount="2" />
<circle class="st0" cx="110" cy="110" r="90"/>
<path class="st1" d="M152.8,188.9c21.6-11.8,36.4-30,43.3-53.6c6.4-21.8,4.6-46-6.9-67.5v0l-0.5-0.9
c-11.9-21.8-31.5-36.7-53.6-43.2c-21.8-6.4-46-4.6-67.5,6.9h0L66.8,31C45,42.9,30.1,62.5,23.6,84.6c-6.5,22.1-4.6,46.6,7.3,68.4
l3.4-1.8l3.4-1.8c-10.9-19.9-12.6-42.4-6.7-62.6c5.9-20.2,19.6-38.1,39.5-49l0,0c19.9-10.9,42.4-12.6,62.6-6.7
c20.2,5.9,38.1,19.6,49,39.5l0,0.1c10.9,19.9,12.6,42.4,6.7,62.6c-5.9,20.2-19.6,38.1-39.5,49l1.8,3.4L152.8,188.9L152.8,188.9z"/>
</g>
<g id="Ruota_x5F_03">
<animateTransform attributeName="transform"
begin="0"
attributeType="XML"
type="rotate"
from="0 110 110"
to="-360 110 110"
dur="2s"
repeatCount="3" />
<path class="st2" d="M11.7,109.9c0,27.1,11,51.6,28.7,69.4C58.2,197,82.8,208,109.9,208c27.1,0,51.6-11,69.4-28.7
C197,161.5,208,137,208,109.9c0-27.1-11-51.6-28.7-69.4c-17.8-17.8-42.3-28.7-69.4-28.7v5c25.7,0,49,10.4,65.8,27.3
c16.9,16.9,27.3,40.1,27.3,65.8c0,25.7-10.4,49-27.3,65.8c-16.9,16.9-40.1,27.3-65.8,27.3c-25.7,0-49-10.4-65.8-27.3
c-16.9-16.9-27.3-40.1-27.3-65.8H11.7L11.7,109.9z"/>
<circle class="st0" cx="110" cy="110" r="93"/>
</g>
<g id="Ruota_x5F_02">
<animateTransform attributeName="transform"
begin="0"
attributeType="XML"
type="rotate"
from="0 110 110"
to="360 110 110"
dur="6s"
repeatCount="1" />
<g>
<path class="st1" d="M181.4,38.4L181.4,38.4c0.3,0.3,0.7,0.7,1,1l0.9,0.9l0.9-0.9l0.6-0.6l0.9-0.9l-0.9-0.9l-2-2l-0.9-0.9
l-0.9,0.9l-0.6,0.6l-0.9,0.9l0.9,0.9C180.7,37.8,181.1,38.1,181.4,38.4z"/>
<path class="st1" d="M187.7,45.3L187.7,45.3c0.4,0.4,0.7,0.8,0.9,1.1l0.8,1l1-0.8l0.6-0.5l1-0.8l-0.8-1l-1.9-2.2l-0.8-1l-1,0.8
l-0.6,0.5l-1,0.8l0.8,1C187.1,44.7,187.4,45,187.7,45.3z"/>
<path class="st1" d="M193.7,53.4c0.3,0.4,0.5,0.8,0.8,1.2l0.7,1.1l1.1-0.7l0.7-0.4l1-0.7l-0.7-1l-1.6-2.4l-0.7-1l-1,0.7l-0.7,0.4
l-1.1,0.7l0.7,1C193.2,52.6,193.4,53,193.7,53.4z"/>
<path class="st1" d="M173.9,31.7c0.3,0.2,0.7,0.5,1.1,0.9l1,0.8l0.8-1l0.5-0.6l0.8-1l-1-0.8l-2.2-1.8l-1-0.8l-0.8,1l-0.5,0.6
l-0.8,1l1,0.8C173.3,31.2,173.6,31.5,173.9,31.7z"/>
<path class="st1" d="M202.7,69.9c0.2,0.5,0.4,0.9,0.6,1.3c0.2,0.5,0.4,1,0.5,1.3l0.5,1.2l1.2-0.5l0.7-0.3l1.2-0.5l-0.5-1.2
l-1.1-2.7l-0.5-1.2l-1.2,0.5l-0.7,0.3l-1.2,0.5L202.7,69.9z"/>
<path class="st1" d="M198.3,60.9c0.2,0.3,0.4,0.8,0.7,1.3c0.2,0.4,0.5,0.9,0.7,1.3l0.6,1.1l1.1-0.6l0.7-0.4l1.1-0.6l-0.6-1.1
l-1.4-2.6l-0.6-1.1l-1.1,0.6l-0.7,0.4l-1.1,0.6L198.3,60.9z"/>
<path class="st1" d="M211.4,97l-1.3,0.1l0.1,1.3c0.1,0.5,0.1,1,0.2,1.4c0,0.3,0.1,0.8,0.1,1.4l0.1,1.3l1.3-0.1l0.8-0.1l1.3-0.1
l-0.1-1.3l-0.3-2.9l-0.1-1.3l-1.3,0.1L211.4,97z"/>
<path class="st1" d="M205.6,77.4l0.4,1.2c0.2,0.5,0.3,1,0.4,1.4c0.1,0.4,0.3,0.9,0.4,1.4l0.4,1.2l1.2-0.4l0.8-0.2l1.2-0.4
l-0.4-1.2l-0.9-2.8l-0.4-1.2l-1.2,0.4l-0.8,0.2L205.6,77.4z"/>
<path class="st1" d="M165.7,25.6c0.4,0.3,0.8,0.5,1.2,0.8l1.1,0.7l0.7-1.1l0.4-0.7l0.7-1.1l-1.1-0.7l-2.4-1.6l-1.1-0.7l-0.7,1.1
l-0.4,0.7l-0.7,1.1l1.1,0.7C164.9,25.1,165.3,25.4,165.7,25.6z"/>
<path class="st1" d="M209.6,86.8l-1.3,0.3l0.3,1.2c0.1,0.6,0.2,1.1,0.3,1.4c0.1,0.4,0.2,0.9,0.3,1.4l0.2,1.3l1.3-0.3l0.8-0.2
l1.2-0.3l-0.3-1.2l-0.6-2.8l-0.3-1.2l-1.2,0.3L209.6,86.8z"/>
<path class="st1" d="M71.4,203.1c-0.4-0.2-0.8-0.3-1.3-0.6l-1.2-0.5l-0.5,1.2l-0.3,0.7l-0.5,1.2l1.2,0.5l2.7,1.1l1.2,0.5l0.5-1.2
l0.3-0.7l0.5-1.2l-1.2-0.5C72.3,203.5,71.9,203.4,71.4,203.1z"/>
<path class="st1" d="M212,116.6l-1.3-0.1l-0.1,1.3c0,0.6-0.1,1.1-0.1,1.4c0,0.4-0.1,0.9-0.1,1.4l-0.1,1.3l1.3,0.1l0.8,0.1l1.3,0.1
l0.1-1.3l0.3-2.9l0.1-1.3l-1.3-0.1L212,116.6z"/>
<path class="st1" d="M213,107.1h-0.8h-1.3l0,1.3l0,0.4v0c0,0.2,0,0.4,0,1c0,0.6,0,0.8,0,1v0l0,0.4l0,1.3h1.3h0.8h1.3v-1.3v-2.9
v-1.3H213z"/>
<path class="st1" d="M62.9,199.2c-0.5-0.3-0.9-0.5-1.3-0.7l-1.1-0.6l-0.6,1.1l-0.4,0.7l-0.6,1.1l1.1,0.6l2.6,1.4l1.1,0.6l0.6-1.1
l0.4-0.7l0.6-1.1l-1.1-0.6C63.7,199.6,63.2,199.3,62.9,199.2z"/>
<path class="st1" d="M157.1,20.5c0.5,0.3,0.9,0.5,1.3,0.7l1.1,0.6l0.6-1.1l0.4-0.7l0.6-1.1l-1.1-0.6l-2.6-1.4l-1.1-0.6l-0.6,1.1
l-0.4,0.7l-0.6,1.1l1.1,0.6C156.3,20.1,156.8,20.3,157.1,20.5z"/>
<path class="st1" d="M54.3,194c-0.4-0.3-0.8-0.5-1.2-0.8l-1.1-0.7l-0.7,1.1l-0.4,0.7l-0.7,1.1l1.1,0.7l2.4,1.6l1.1,0.7l0.7-1.1
l0.4-0.7l0.7-1.1l-1.1-0.7C55.1,194.6,54.7,194.3,54.3,194z"/>
<path class="st1" d="M148.6,16.5c0.4,0.2,0.8,0.3,1.3,0.6l1.2,0.5l0.5-1.2l0.3-0.7l0.5-1.2l-1.2-0.5l-2.7-1.1l-1.2-0.5l-0.5,1.2
l-0.3,0.7l-0.5,1.2l1.2,0.5C147.7,16.1,148.1,16.3,148.6,16.5z"/>
<path class="st1" d="M181.4,181.5c-18.3,18.3-43.6,29.6-71.5,29.6c-11,0-21.6-1.8-31.5-5l-1.4,2.8c10.4,3.5,21.4,5.3,33,5.3
c28.8,0,54.8-11.7,73.7-30.5c15-15,25.4-34.5,29.1-56.3l-3.1-0.2C205.9,148.2,195.8,167,181.4,181.5z"/>
<path class="st1" d="M8.8,110c0-27.9,11.3-53.2,29.6-71.5C56.7,20.2,82,8.9,109.9,8.9c11,0,21.6,1.8,31.5,5l1.4-2.8
c-10.4-3.5-21.4-5.3-33-5.3c-28.8,0-54.8,11.7-73.7,30.5C17.4,55.2,5.7,81.2,5.7,110c0,28.8,11.7,54.8,30.5,73.7
c3.6,3.6,7.5,6.9,11.6,10l1.4-2.8c-3.8-2.9-7.4-6-10.8-9.4C20.1,163.2,8.8,137.9,8.8,110z"/>
</g>
</g>
<g id="Ruota_x5F_01">
<animateTransform attributeName="transform"
begin="0"
attributeType="XML"
type="rotate"
from="0 110 110"
to="-360 110 110"
dur="6s"
repeatCount="1" />
<g>
<path class="st2" d="M14.7,159l-0.8,0.4c0.4,0.8,0.9,1.7,1.3,2.5l0.8-0.4C15.6,160.6,15.1,159.8,14.7,159z"/>
<path class="st2" d="M8.2,143.5l-0.9,0.3c0.3,0.9,0.6,1.8,0.9,2.7l0.9-0.3C8.8,145.3,8.5,144.4,8.2,143.5z"/>
<path class="st2" d="M6.3,137l-0.9,0.2c0.2,0.9,0.5,1.8,0.8,2.7l0.9-0.3C6.8,138.8,6.5,137.9,6.3,137z"/>
<path class="st2" d="M9.3,146.6L8.4,147c0.3,0.9,0.7,1.8,1,2.7l0.9-0.3C10,148.4,9.6,147.5,9.3,146.6z"/>
<path class="st2" d="M10.5,149.8l-0.9,0.3c0.4,0.9,0.7,1.8,1.1,2.6l0.9-0.4C11.2,151.5,10.9,150.7,10.5,149.8z"/>
<path class="st2" d="M13.2,156l-0.8,0.4c0.4,0.9,0.8,1.7,1.3,2.6l0.8-0.4C14,157.7,13.6,156.8,13.2,156z"/>
<path class="st2" d="M5.5,133.7l-0.9,0.2c0.2,0.9,0.4,1.9,0.7,2.8l0.9-0.2C5.9,135.6,5.7,134.7,5.5,133.7z"/>
<path class="st2" d="M12.3,154.1c-0.2-0.4-0.3-0.8-0.5-1.2l-0.9,0.4c0.2,0.4,0.3,0.8,0.5,1.2c0.2,0.5,0.4,0.9,0.6,1.4l0.8-0.4
C12.8,155,12.5,154.5,12.3,154.1z"/>
<path class="st2" d="M7.2,140.3l-0.9,0.3c0.3,0.9,0.6,1.8,0.8,2.7L8,143C7.7,142.1,7.5,141.2,7.2,140.3z"/>
<path class="st2" d="M217,103.1l0.9-0.1c-0.1-0.9-0.1-1.9-0.2-2.8l-0.9,0.1C216.8,101.2,216.9,102.2,217,103.1z"/>
<path class="st2" d="M4.8,130.5l-0.9,0.2c0.2,0.9,0.4,1.9,0.6,2.8l0.9-0.2C5.2,132.3,5,131.4,4.8,130.5z"/>
<path class="st2" d="M217.1,106.5l0.9,0c0-1-0.1-1.9-0.1-2.8l-0.9,0.1C217,104.6,217.1,105.5,217.1,106.5z"/>
<path class="st2" d="M217.2,109.8h0.9c0-1,0-1.9,0-2.9l-0.9,0C217.2,108,217.2,108.9,217.2,109.8z"/>
<path class="st2" d="M4.2,127.1l-0.9,0.1c0.2,0.9,0.3,1.9,0.5,2.8l0.9-0.2C4.5,129,4.4,128.1,4.2,127.1z"/>
<path class="st2" d="M3.7,123.8l-0.9,0.1c0.1,0.9,0.3,1.9,0.4,2.8l0.9-0.1C4,125.7,3.8,124.7,3.7,123.8z"/>
<path class="st2" d="M3.3,120.5l-0.9,0.1c0.1,0.9,0.2,1.9,0.3,2.8l0.9-0.1C3.5,122.3,3.4,121.4,3.3,120.5z"/>
<path class="st2" d="M3.1,117.1l-0.9,0.1c0.1,0.9,0.1,1.9,0.2,2.8l0.9-0.1C3.2,119,3.1,118,3.1,117.1z"/>
<path class="st2" d="M39.4,190.6l-0.6,0.7c0.7,0.6,1.4,1.2,2.2,1.8l0.6-0.7C40.8,191.9,40.1,191.2,39.4,190.6z"/>
<path class="st2" d="M36.9,188.4l-0.6,0.7c0.7,0.6,1.4,1.3,2.1,1.9l0.6-0.7C38.3,189.6,37.6,189,36.9,188.4z"/>
<path class="st2" d="M34.5,186l-0.7,0.7c0.7,0.7,1.4,1.3,2,2l0.6-0.7C35.8,187.3,35.1,186.7,34.5,186z"/>
<path class="st2" d="M44.6,194.9l-0.6,0.7c0.8,0.6,1.5,1.1,2.3,1.7l0.5-0.8C46.1,196,45.3,195.5,44.6,194.9z"/>
<path class="st2" d="M52.9,200.7l-0.5,0.8c0.8,0.5,1.6,1,2.4,1.5l0.5-0.8C54.4,201.7,53.6,201.2,52.9,200.7z"/>
<path class="st2" d="M32.1,183.6l-0.7,0.6c0.7,0.7,1.3,1.4,2,2l0.7-0.7C33.4,185,32.8,184.3,32.1,183.6z"/>
<path class="st2" d="M47.3,196.9l-0.5,0.8c0.8,0.6,1.5,1.1,2.3,1.6l0.5-0.8C48.8,198,48,197.5,47.3,196.9z"/>
<path class="st2" d="M50,198.8l-0.5,0.8c0.8,0.5,1.6,1.1,2.4,1.6l0.5-0.8C51.6,199.9,50.8,199.4,50,198.8z"/>
<path class="st2" d="M25.5,176l-0.7,0.6c0.6,0.7,1.2,1.5,1.8,2.2l0.7-0.6C26.7,177.4,26.1,176.7,25.5,176z"/>
<path class="st2" d="M19.7,167.7l-0.8,0.5c0.5,0.8,1,1.6,1.6,2.4l0.8-0.5C20.7,169.3,20.2,168.5,19.7,167.7z"/>
<path class="st2" d="M18,164.9l-0.8,0.5c0.5,0.8,1,1.6,1.5,2.4l0.8-0.5C18.9,166.5,18.4,165.7,18,164.9z"/>
<path class="st2" d="M21.6,170.5l-0.8,0.5c0.5,0.8,1.1,1.6,1.6,2.3l0.8-0.5C22.6,172.1,22.1,171.3,21.6,170.5z"/>
<path class="st2" d="M23.5,173.3l-0.8,0.5c0.6,0.8,1.1,1.5,1.7,2.3l0.7-0.6C24.6,174.8,24.1,174,23.5,173.3z"/>
<path class="st2" d="M27.7,178.6l-0.7,0.6c0.6,0.7,1.2,1.5,1.9,2.2l0.7-0.6C28.9,180,28.3,179.3,27.7,178.6z"/>
<path class="st2" d="M16.3,161.9l-0.8,0.4c0.5,0.8,0.9,1.7,1.4,2.5l0.8-0.5C17.2,163.6,16.7,162.8,16.3,161.9z"/>
<path class="st2" d="M29.8,181.1l-0.7,0.6c0.6,0.7,1.3,1.4,1.9,2.1l0.7-0.6C31.1,182.5,30.5,181.8,29.8,181.1z"/>
<path class="st2" d="M188,36.5l0.7-0.6c-0.7-0.7-1.3-1.4-2-2.1l-0.7,0.7C186.7,35.1,187.4,35.8,188,36.5z"/>
<path class="st2" d="M185.6,34.1l0.7-0.7c-0.7-0.7-1.4-1.3-2-2l-0.6,0.7C184.3,32.8,185,33.4,185.6,34.1z"/>
<path class="st2" d="M190.3,39l0.7-0.6c-0.6-0.7-1.3-1.4-1.9-2.1l-0.7,0.6C189,37.6,189.6,38.3,190.3,39z"/>
<path class="st2" d="M55.3,203.2c0.8,0.5,1.6,0.9,2.5,1.4l0.4-0.8c-0.8-0.5-1.6-0.9-2.5-1.4L55.3,203.2z"/>
<path class="st2" d="M183.2,31.7l0.6-0.7c-0.7-0.6-1.4-1.3-2.1-1.9l-0.6,0.7C181.8,30.5,182.5,31.1,183.2,31.7z"/>
<path class="st2" d="M194.6,44.2l0.7-0.6c-0.6-0.8-1.2-1.5-1.8-2.2l-0.7,0.6C193.4,42.7,194,43.4,194.6,44.2z"/>
<path class="st2" d="M196.6,46.9l0.8-0.5c-0.6-0.8-1.1-1.5-1.7-2.3l-0.7,0.6C195.5,45.3,196,46.1,196.6,46.9z"/>
<path class="st2" d="M180.7,29.5l0.6-0.7c-0.7-0.6-1.4-1.2-2.2-1.9l-0.6,0.7C179.3,28.2,180,28.8,180.7,29.5z"/>
<path class="st2" d="M192.5,41.5l0.7-0.6c-0.6-0.7-1.2-1.5-1.9-2.2l-0.7,0.6C191.2,40.1,191.9,40.8,192.5,41.5z"/>
<path class="st2" d="M170.1,21.2l0.5-0.8c-0.8-0.5-1.6-1.1-2.4-1.6l-0.5,0.8C168.5,20.2,169.3,20.7,170.1,21.2z"/>
<path class="st2" d="M164.8,16.8c-0.8-0.5-1.6-1-2.5-1.4l-0.4,0.8c0.8,0.5,1.6,0.9,2.5,1.4L164.8,16.8z"/>
<path class="st2" d="M161.9,15.2c-0.8-0.5-1.7-0.9-2.5-1.3l-0.4,0.8c0.8,0.4,1.7,0.9,2.5,1.3L161.9,15.2z"/>
<path class="st2" d="M167.2,19.4l0.5-0.8c-0.8-0.5-1.6-1-2.4-1.5l-0.5,0.8C165.6,18.4,166.5,18.9,167.2,19.4z"/>
<path class="st2" d="M198.5,49.6l0.8-0.5c-0.5-0.8-1.1-1.6-1.6-2.3l-0.8,0.5C197.5,48.1,198,48.8,198.5,49.6z"/>
<path class="st2" d="M175.5,25.2l0.6-0.7c-0.8-0.6-1.5-1.2-2.3-1.7l-0.5,0.8C174,24,174.8,24.6,175.5,25.2z"/>
<path class="st2" d="M172.8,23.2l0.5-0.8c-0.8-0.6-1.5-1.1-2.3-1.6l-0.5,0.8C171.3,22.1,172.1,22.6,172.8,23.2z"/>
<path class="st2" d="M178.2,27.3l0.6-0.7c-0.7-0.6-1.5-1.2-2.2-1.8l-0.6,0.7C176.7,26.1,177.4,26.7,178.2,27.3z"/>
<path class="st2" d="M209.6,70.4l0.9-0.3c-0.4-0.9-0.7-1.8-1.1-2.6l-0.9,0.4C208.9,68.7,209.2,69.5,209.6,70.4z"/>
<path class="st2" d="M214.5,86.5l0.9-0.2c-0.2-0.9-0.4-1.9-0.7-2.8l-0.9,0.2C214.1,84.6,214.3,85.5,214.5,86.5z"/>
<path class="st2" d="M213.8,83.2l0.9-0.2c-0.2-0.9-0.5-1.8-0.7-2.8l-0.9,0.3C213.3,81.4,213.5,82.3,213.8,83.2z"/>
<path class="st2" d="M212.9,79.9l0.9-0.3c-0.3-0.9-0.5-1.8-0.8-2.7l-0.9,0.3C212.3,78.1,212.6,79,212.9,79.9z"/>
<path class="st2" d="M215.2,89.8l0.9-0.2c-0.2-0.9-0.4-1.9-0.6-2.8l-0.9,0.2C214.9,87.9,215.1,88.8,215.2,89.8z"/>
<path class="st2" d="M211.9,76.7l0.9-0.3c-0.3-0.9-0.6-1.8-0.9-2.7l-0.9,0.3C211.3,74.9,211.6,75.8,211.9,76.7z"/>
<path class="st2" d="M216.3,96.4l0.9-0.1c-0.1-0.9-0.3-1.9-0.4-2.8l-0.9,0.1C216.1,94.5,216.2,95.5,216.3,96.4z"/>
<path class="st2" d="M215.8,93.1l0.9-0.1c-0.2-0.9-0.3-1.9-0.5-2.8l-0.9,0.2C215.5,91.2,215.7,92.1,215.8,93.1z"/>
<path class="st2" d="M202.1,55.3l0.8-0.5c-0.5-0.8-1-1.6-1.5-2.4l-0.8,0.5C201.2,53.7,201.7,54.5,202.1,55.3z"/>
<path class="st2" d="M203.8,58.2l0.8-0.4c-0.5-0.8-0.9-1.7-1.4-2.5l-0.8,0.5C202.9,56.6,203.4,57.4,203.8,58.2z"/>
<path class="st2" d="M200.4,52.4l0.8-0.5c-0.5-0.8-1-1.6-1.6-2.4l-0.8,0.5C199.4,50.8,199.9,51.6,200.4,52.4z"/>
<path class="st2" d="M205.4,61.2l0.8-0.4c-0.4-0.8-0.9-1.7-1.3-2.5l-0.8,0.4C204.5,59.5,205,60.4,205.4,61.2z"/>
<path class="st2" d="M206.9,64.2l0.8-0.4c-0.4-0.9-0.8-1.7-1.3-2.6l-0.8,0.4C206.1,62.5,206.5,63.4,206.9,64.2z"/>
<path class="st2" d="M216.7,99.7l0.9-0.1c-0.1-0.9-0.2-1.9-0.3-2.8l-0.9,0.1C216.5,97.9,216.6,98.8,216.7,99.7z"/>
<path class="st2" d="M207.7,65.9c0.2,0.5,0.4,0.9,0.6,1.4l0.9-0.4c-0.2-0.5-0.4-0.9-0.6-1.4c-0.2-0.4-0.4-0.8-0.6-1.2l-0.8,0.4
C207.3,65.1,207.5,65.5,207.7,65.9z"/>
<path class="st2" d="M210.8,73.5l0.9-0.3c-0.3-0.9-0.7-1.8-1-2.7l-0.9,0.3C210.1,71.8,210.4,72.7,210.8,73.5z"/>
<path class="st2" d="M194.8,175.5l0.7,0.6c0.6-0.8,1.1-1.5,1.7-2.3l-0.8-0.5C195.9,174,195.4,174.8,194.8,175.5z"/>
<path class="st2" d="M190.5,180.7l0.7,0.6c0.6-0.7,1.2-1.4,1.9-2.2l-0.7-0.6C191.8,179.3,191.1,180,190.5,180.7z"/>
<path class="st2" d="M192.7,178.2l0.7,0.6c0.6-0.7,1.2-1.5,1.8-2.2l-0.7-0.6C193.9,176.7,193.3,177.5,192.7,178.2z"/>
<path class="st2" d="M185.9,185.6l0.7,0.7c0.7-0.7,1.3-1.4,2-2l-0.7-0.6C187.2,184.3,186.6,185,185.9,185.6z"/>
<path class="st2" d="M202.3,164.4l0.8,0.5c0.5-0.8,0.9-1.6,1.4-2.5l-0.8-0.4C203.3,162.8,202.8,163.6,202.3,164.4z"/>
<path class="st2" d="M188.3,183.2l0.7,0.6c0.6-0.7,1.3-1.4,1.9-2.1l-0.7-0.6C189.5,181.8,188.9,182.5,188.3,183.2z"/>
<path class="st2" d="M200.6,167.3l0.8,0.5c0.5-0.8,1-1.6,1.5-2.4l-0.8-0.5C201.6,165.7,201.1,166.5,200.6,167.3z"/>
<path class="st2" d="M196.8,172.8l0.8,0.5c0.6-0.8,1.1-1.5,1.6-2.3l-0.8-0.5C197.9,171.3,197.4,172.1,196.8,172.8z"/>
<path class="st2" d="M198.7,170.1l0.8,0.5c0.5-0.8,1.1-1.6,1.6-2.4l-0.8-0.5C199.8,168.5,199.3,169.3,198.7,170.1z"/>
<path class="st2" d="M158.9,13.6c-0.8-0.4-1.7-0.8-2.6-1.3l-0.4,0.8c0.9,0.4,1.7,0.8,2.5,1.2L158.9,13.6z"/>
<path class="st2" d="M170.4,198.5l0.5,0.8c0.8-0.5,1.6-1.1,2.3-1.6l-0.5-0.8C172,197.4,171.2,198,170.4,198.5z"/>
<path class="st2" d="M173.2,196.6l0.5,0.8c0.8-0.6,1.5-1.1,2.3-1.7l-0.6-0.7C174.7,195.5,173.9,196,173.2,196.6z"/>
<path class="st2" d="M167.6,200.4l0.5,0.8c0.8-0.5,1.6-1,2.4-1.6l-0.5-0.8C169.2,199.3,168.4,199.9,167.6,200.4z"/>
<path class="st2" d="M175.8,194.6l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C177.3,193.4,176.6,194,175.8,194.6z"/>
<path class="st2" d="M181,190.3l0.6,0.7c0.7-0.6,1.4-1.3,2.1-1.9l-0.6-0.7C182.4,189,181.7,189.6,181,190.3z"/>
<path class="st2" d="M183.5,188l0.6,0.7c0.7-0.7,1.4-1.3,2-2l-0.7-0.7C184.9,186.7,184.2,187.3,183.5,188z"/>
<path class="st2" d="M178.5,192.4l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C179.9,191.2,179.2,191.8,178.5,192.4z"/>
<path class="st2" d="M205.6,158.5l0.8,0.4c0.4-0.8,0.8-1.7,1.3-2.6l-0.8-0.4C206.4,156.8,206,157.7,205.6,158.5z"/>
<path class="st2" d="M215.9,126.6l0.9,0.1c0.1-0.9,0.3-1.9,0.4-2.8l-0.9-0.1C216.2,124.7,216,125.7,215.9,126.6z"/>
<path class="st2" d="M215.3,129.9l0.9,0.2c0.2-0.9,0.3-1.9,0.5-2.8l-0.9-0.1C215.6,128.1,215.5,129,215.3,129.9z"/>
<path class="st2" d="M214.6,133.2l0.9,0.2c0.2-0.9,0.4-1.9,0.6-2.8l-0.9-0.2C215,131.4,214.8,132.3,214.6,133.2z"/>
<path class="st2" d="M213.8,136.5l0.9,0.2c0.2-0.9,0.5-1.8,0.7-2.8l-0.9-0.2C214.3,134.7,214.1,135.6,213.8,136.5z"/>
<path class="st2" d="M216.3,123.3l0.9,0.1c0.1-0.9,0.2-1.9,0.3-2.8l-0.9-0.1C216.6,121.4,216.5,122.3,216.3,123.3z"/>
<path class="st2" d="M217.2,110.4c0,0.9,0,1.9,0,2.8l0.9,0c0-1,0-1.9,0-2.9H217.2z"/>
<path class="st2" d="M204,161.5l0.8,0.4c0.5-0.8,0.9-1.7,1.3-2.5l-0.8-0.4C204.9,159.8,204.4,160.6,204,161.5z"/>
<path class="st2" d="M217,116.6l0.9,0.1c0.1-0.9,0.1-1.9,0.1-2.8l-0.9,0C217.1,114.7,217,115.6,217,116.6z"/>
<path class="st2" d="M216.7,119.9l0.9,0.1c0.1-0.9,0.2-1.9,0.2-2.8l-0.9-0.1C216.9,118,216.8,119,216.7,119.9z"/>
<path class="st2" d="M207,155.5l0.8,0.4c0.4-0.9,0.8-1.7,1.2-2.6l-0.9-0.4C207.8,153.8,207.4,154.6,207,155.5z"/>
<path class="st2" d="M164.7,202.1l0.5,0.8c0.8-0.5,1.6-1,2.4-1.5l-0.5-0.8C166.3,201.2,165.5,201.6,164.7,202.1z"/>
<path class="st2" d="M208.4,152.4l0.9,0.4c0.4-0.9,0.7-1.7,1.1-2.6l-0.9-0.3C209.1,150.7,208.8,151.5,208.4,152.4z"/>
<path class="st2" d="M210.9,146.1l0.9,0.3c0.3-0.9,0.6-1.8,0.9-2.7l-0.9-0.3C211.5,144.4,211.2,145.2,210.9,146.1z"/>
<path class="st2" d="M212,143l0.9,0.3c0.3-0.9,0.6-1.8,0.8-2.7l-0.9-0.3C212.5,141.2,212.3,142.1,212,143z"/>
<path class="st2" d="M213,139.7l0.9,0.3c0.3-0.9,0.5-1.8,0.8-2.7l-0.9-0.2C213.5,137.9,213.2,138.8,213,139.7z"/>
<path class="st2" d="M210.2,147.9c-0.2,0.5-0.4,0.9-0.5,1.4l0.9,0.3c0.2-0.5,0.4-0.9,0.6-1.4c0.2-0.4,0.3-0.8,0.5-1.3l-0.9-0.3
C210.5,147.1,210.4,147.5,210.2,147.9z"/>
<path class="st2" d="M103.5,217.9c0.9,0.1,1.9,0.1,2.8,0.1l0-0.9c-0.9,0-1.9-0.1-2.8-0.1L103.5,217.9z"/>
<path class="st2" d="M90,216.2c0.9,0.2,1.9,0.3,2.8,0.5l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.5L90,216.2z"/>
<path class="st2" d="M110.3,217.2v0.9c1,0,1.9,0,2.8,0l0-0.9C112.2,217.2,111.2,217.2,110.3,217.2z"/>
<path class="st2" d="M96.7,217.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L96.7,217.3z"/>
<path class="st2" d="M86.7,215.6c0.9,0.2,1.9,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.8-0.4-2.8-0.6L86.7,215.6z"/>
<path class="st2" d="M93.4,216.8c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L93.4,216.8z"/>
<path class="st2" d="M106.9,218.1c1,0,1.9,0,2.8,0v-0.9c-0.9,0-1.9,0-2.8,0L106.9,218.1z"/>
<path class="st2" d="M58.2,204.9c0.8,0.5,1.7,0.9,2.5,1.3l0.4-0.8c-0.8-0.4-1.7-0.9-2.5-1.3L58.2,204.9z"/>
<path class="st2" d="M161.8,203.8l0.4,0.8c0.8-0.5,1.7-0.9,2.5-1.4l-0.5-0.8C163.5,202.9,162.6,203.3,161.8,203.8z"/>
<path class="st2" d="M83.4,214.8c0.9,0.2,1.8,0.5,2.8,0.7l0.2-0.9c-0.9-0.2-1.8-0.4-2.7-0.7L83.4,214.8z"/>
<path class="st2" d="M64.3,207.9c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.9c-0.9-0.4-1.7-0.8-2.6-1.2L64.3,207.9z"/>
<path class="st2" d="M61.2,206.5c0.8,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.5-1.2L61.2,206.5z"/>
<path class="st2" d="M67.4,209.3c0.9,0.4,1.7,0.7,2.6,1.1l0.3-0.9c-0.9-0.3-1.7-0.7-2.6-1.1L67.4,209.3z"/>
<path class="st2" d="M70.8,209.7l-0.3,0.9c0.4,0.2,0.8,0.3,1.3,0.5c0.5,0.2,0.9,0.3,1.4,0.5l0.3-0.9c-0.5-0.2-0.9-0.3-1.4-0.5
C71.7,210.1,71.3,209.9,70.8,209.7z"/>
<path class="st2" d="M76.9,212.9c0.9,0.3,1.8,0.6,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.5-2.7-0.8L76.9,212.9z"/>
<path class="st2" d="M73.7,211.8c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L73.7,211.8z"/>
<path class="st2" d="M80.1,213.9c0.9,0.3,1.8,0.5,2.7,0.8l0.2-0.9c-0.9-0.2-1.8-0.5-2.7-0.7L80.1,213.9z"/>
<path class="st2" d="M100.1,217.7c0.9,0.1,1.9,0.2,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.1-2.8-0.2L100.1,217.7z"/>
<path class="st2" d="M149.7,209.5l0.3,0.9c0.9-0.4,1.8-0.7,2.6-1.1l-0.4-0.9C151.4,208.8,150.5,209.2,149.7,209.5z"/>
<path class="st2" d="M113.6,217.1l0,0.9c0.9,0,1.9-0.1,2.8-0.1l-0.1-0.9C115.5,217,114.6,217.1,113.6,217.1z"/>
<path class="st2" d="M143.3,211.8l0.3,0.9c0.9-0.3,1.8-0.6,2.7-0.9l-0.3-0.9C145.1,211.2,144.2,211.5,143.3,211.8z"/>
<path class="st2" d="M140.1,212.8l0.3,0.9c0.9-0.3,1.8-0.5,2.7-0.8l-0.3-0.9C141.9,212.3,141,212.6,140.1,212.8z"/>
<path class="st2" d="M158.8,205.4l0.4,0.8c0.8-0.4,1.7-0.9,2.5-1.3l-0.4-0.8C160.5,204.5,159.7,204.9,158.8,205.4z"/>
<path class="st2" d="M154.1,207.7c-0.4,0.2-0.9,0.4-1.3,0.6l0.4,0.9c0.4-0.2,0.9-0.4,1.3-0.6c0.4-0.2,0.8-0.4,1.3-0.6l-0.4-0.8
C154.9,207.3,154.5,207.5,154.1,207.7z"/>
<path class="st2" d="M155.8,206.9l0.4,0.8c0.9-0.4,1.7-0.8,2.6-1.2l-0.4-0.8C157.5,206,156.7,206.5,155.8,206.9z"/>
<path class="st2" d="M146.5,210.7l0.3,0.9c0.9-0.3,1.8-0.7,2.7-1l-0.3-0.9C148.3,210.1,147.4,210.4,146.5,210.7z"/>
<path class="st2" d="M123.7,216.3l0.1,0.9c0.9-0.1,1.9-0.3,2.8-0.4l-0.1-0.9C125.6,216,124.6,216.2,123.7,216.3z"/>
<path class="st2" d="M120.3,216.7l0.1,0.9c0.9-0.1,1.9-0.2,2.8-0.3l-0.1-0.9C122.2,216.5,121.3,216.6,120.3,216.7z"/>
<path class="st2" d="M117,217l0.1,0.9c0.9-0.1,1.9-0.1,2.8-0.2l-0.1-0.9C118.9,216.8,117.9,216.9,117,217z"/>
<path class="st2" d="M133.6,214.5l0.2,0.9c0.9-0.2,1.8-0.4,2.8-0.7l-0.2-0.9C135.4,214.1,134.5,214.3,133.6,214.5z"/>
<path class="st2" d="M136.9,213.7l0.2,0.9c0.9-0.2,1.8-0.5,2.7-0.8l-0.3-0.9C138.7,213.3,137.8,213.5,136.9,213.7z"/>
<path class="st2" d="M130.3,215.2l0.2,0.9c0.9-0.2,1.9-0.4,2.8-0.6l-0.2-0.9C132.2,214.8,131.3,215,130.3,215.2z"/>
<path class="st2" d="M127,215.8l0.1,0.9c0.9-0.2,1.9-0.3,2.8-0.5l-0.2-0.9C128.9,215.5,127.9,215.7,127,215.8z"/>
<path class="st2" d="M41.9,192.8l-0.6,0.7c0.7,0.6,1.5,1.2,2.2,1.8l0.6-0.7C43.4,194,42.7,193.4,41.9,192.8z"/>
<path class="st2" d="M110.3,2.8c0.9,0,1.9,0,2.8,0l0-0.9c-1,0-1.9,0-2.9,0V2.8z"/>
<path class="st2" d="M55.2,17.9l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.5l0.5,0.8C53.6,18.9,54.4,18.4,55.2,17.9z"/>
<path class="st2" d="M49.5,21.6L49,20.8c-0.8,0.5-1.6,1.1-2.3,1.6l0.5,0.8C47.9,22.6,48.7,22.1,49.5,21.6z"/>
<path class="st2" d="M52.3,19.7l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.6l0.5,0.8C50.7,20.7,51.5,20.2,52.3,19.7z"/>
<path class="st2" d="M65.9,12.3c0.4-0.2,0.8-0.4,1.2-0.5l-0.4-0.9c-0.4,0.2-0.8,0.4-1.3,0.5c-0.5,0.2-0.9,0.4-1.3,0.6l0.4,0.8
C65,12.7,65.5,12.5,65.9,12.3z"/>
<path class="st2" d="M61.1,14.7l-0.4-0.8c-0.8,0.4-1.7,0.9-2.5,1.3l0.4,0.8C59.4,15.5,60.2,15.1,61.1,14.7z"/>
<path class="st2" d="M64.1,13.2l-0.4-0.8c-0.9,0.4-1.7,0.8-2.6,1.3l0.4,0.8C62.4,14,63.2,13.6,64.1,13.2z"/>
<path class="st2" d="M38.9,29.8l-0.6-0.7c-0.7,0.6-1.4,1.3-2.1,1.9l0.6,0.7C37.5,31.1,38.2,30.5,38.9,29.8z"/>
<path class="st2" d="M46.7,23.5l-0.5-0.8c-0.8,0.6-1.5,1.1-2.3,1.7l0.6,0.7C45.2,24.6,46,24.1,46.7,23.5z"/>
<path class="st2" d="M34,34.5l-0.7-0.7c-0.7,0.7-1.3,1.4-2,2.1l0.7,0.6C32.6,35.8,33.3,35.1,34,34.5z"/>
<path class="st2" d="M36.4,32.1l-0.6-0.7c-0.7,0.7-1.4,1.3-2.1,2l0.7,0.7C35,33.4,35.7,32.8,36.4,32.1z"/>
<path class="st2" d="M41.4,27.6l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.9l0.6,0.7C40,28.9,40.7,28.2,41.4,27.6z"/>
<path class="st2" d="M44,25.5l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.8l0.6,0.7C42.6,26.7,43.3,26.1,44,25.5z"/>
<path class="st2" d="M106.9,2.9c0.9,0,1.9,0,2.8,0V1.9c-1,0-1.9,0-2.9,0L106.9,2.9z"/>
<path class="st2" d="M103,3l-0.1-0.9c-1,0.1-1.9,0.1-2.8,0.2l0.1,0.9C101.1,3.2,102.1,3.1,103,3z"/>
<path class="st2" d="M99.6,3.3l-0.1-0.9c-0.9,0.1-1.9,0.2-2.8,0.3l0.1,0.9C97.8,3.5,98.7,3.4,99.6,3.3z"/>
<path class="st2" d="M96.3,3.7l-0.1-0.9c-0.9,0.1-1.9,0.3-2.8,0.4l0.1,0.9C94.4,4,95.3,3.8,96.3,3.7z"/>
<path class="st2" d="M106.4,2.9l0-0.9c-1,0-1.9,0.1-2.9,0.1l0.1,0.9C104.5,3,105.4,2.9,106.4,2.9z"/>
<path class="st2" d="M31.6,36.9L31,36.2c-0.6,0.7-1.3,1.4-1.9,2.1l0.7,0.6C30.4,38.3,31,37.6,31.6,36.9z"/>
<path class="st2" d="M92.9,4.2l-0.1-0.9c-0.9,0.2-1.9,0.3-2.8,0.5l0.2,0.9C91.1,4.5,92,4.3,92.9,4.2z"/>
<path class="st2" d="M83.1,6.3l-0.2-0.9c-0.9,0.2-1.8,0.5-2.8,0.8L80.3,7C81.2,6.8,82.1,6.5,83.1,6.3z"/>
<path class="st2" d="M73.4,9.3l-0.3-0.9c-0.9,0.3-1.8,0.7-2.7,1l0.3,0.9C71.6,9.9,72.5,9.6,73.4,9.3z"/>
<path class="st2" d="M76.6,8.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.9l0.3,0.9C74.8,8.8,75.7,8.5,76.6,8.2z"/>
<path class="st2" d="M79.8,7.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.8L77.1,8C78,7.7,78.9,7.4,79.8,7.2z"/>
<path class="st2" d="M70.3,10.5l-0.3-0.9c-0.9,0.4-1.8,0.7-2.6,1.1l0.4,0.9C68.5,11.2,69.4,10.8,70.3,10.5z"/>
<path class="st2" d="M89.6,4.8l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.6l0.2,0.9C87.8,5.2,88.7,5,89.6,4.8z"/>
<path class="st2" d="M58.1,16.3l-0.4-0.8c-0.8,0.5-1.7,0.9-2.5,1.4l0.5,0.8C56.5,17.2,57.3,16.7,58.1,16.3z"/>
<path class="st2" d="M29.4,39.4l-0.7-0.6c-0.6,0.7-1.2,1.4-1.9,2.2l0.7,0.6C28.1,40.8,28.8,40.1,29.4,39.4z"/>
<path class="st2" d="M4.1,93.6l-0.9-0.1c-0.1,0.9-0.3,1.9-0.4,2.8l0.9,0.1C3.8,95.5,3.9,94.5,4.1,93.6z"/>
<path class="st2" d="M5.3,87l-0.9-0.2c-0.2,0.9-0.4,1.9-0.6,2.8l0.9,0.2C4.9,88.8,5.1,87.9,5.3,87z"/>
<path class="st2" d="M4.7,90.3l-0.9-0.2c-0.2,0.9-0.3,1.9-0.5,2.8l0.9,0.1C4.3,92.1,4.5,91.2,4.7,90.3z"/>
<path class="st2" d="M6.1,83.7l-0.9-0.2c-0.2,0.9-0.5,1.8-0.7,2.8l0.9,0.2C5.7,85.5,5.9,84.6,6.1,83.7z"/>
<path class="st2" d="M8,77.2L7.1,77c-0.3,0.9-0.6,1.8-0.8,2.7l0.9,0.3C7.4,79,7.7,78.1,8,77.2z"/>
<path class="st2" d="M7,80.5l-0.9-0.3C5.8,81.1,5.6,82,5.3,83l0.9,0.2C6.5,82.3,6.7,81.4,7,80.5z"/>
<path class="st2" d="M2.9,113.7l-0.9,0c0,1,0.1,1.9,0.1,2.8l0.9-0.1C3,115.6,2.9,114.7,2.9,113.7z"/>
<path class="st2" d="M3.3,100.3l-0.9-0.1c-0.1,0.9-0.2,1.9-0.2,2.8l0.9,0.1C3.1,102.2,3.2,101.2,3.3,100.3z"/>
<path class="st2" d="M2.8,110.4H1.9c0,1,0,1.9,0,2.9l0.9,0C2.8,112.3,2.8,111.3,2.8,110.4z"/>
<path class="st2" d="M2.9,107l-0.9,0c0,1,0,1.9,0,2.9h0.9C2.8,108.9,2.8,108,2.9,107z"/>
<path class="st2" d="M3,103.6l-0.9-0.1c-0.1,1-0.1,1.9-0.1,2.8l0.9,0C2.9,105.5,2.9,104.6,3,103.6z"/>
<path class="st2" d="M3.6,96.9l-0.9-0.1c-0.1,0.9-0.2,1.9-0.3,2.8l0.9,0.1C3.4,98.8,3.5,97.9,3.6,96.9z"/>
<path class="st2" d="M21.2,50.1l-0.8-0.5c-0.5,0.8-1.1,1.6-1.6,2.4l0.8,0.5C20.1,51.6,20.6,50.8,21.2,50.1z"/>
<path class="st2" d="M23.1,47.3l-0.8-0.5c-0.6,0.8-1.1,1.5-1.6,2.3l0.8,0.5C22,48.8,22.5,48.1,23.1,47.3z"/>
<path class="st2" d="M19.3,52.9l-0.8-0.5c-0.5,0.8-1,1.6-1.5,2.4l0.8,0.5C18.3,54.5,18.8,53.7,19.3,52.9z"/>
<path class="st2" d="M27.2,42l-0.7-0.6c-0.6,0.7-1.2,1.5-1.8,2.2l0.7,0.6C26,43.4,26.6,42.7,27.2,42z"/>
<path class="st2" d="M25.1,44.6L24.4,44c-0.6,0.8-1.1,1.5-1.7,2.3l0.8,0.5C24,46.1,24.5,45.3,25.1,44.6z"/>
<path class="st2" d="M17.6,55.8l-0.8-0.5c-0.5,0.8-0.9,1.6-1.4,2.5l0.8,0.4C16.6,57.4,17.1,56.6,17.6,55.8z"/>
<path class="st2" d="M9.1,74.1l-0.9-0.3c-0.3,0.9-0.6,1.8-0.9,2.7l0.9,0.3C8.4,75.8,8.7,74.9,9.1,74.1z"/>
<path class="st2" d="M9.8,72.1c0.2-0.4,0.3-0.8,0.5-1.2l-0.9-0.3C9.2,71,9,71.4,8.9,71.8c-0.2,0.5-0.4,1-0.5,1.5l0.9,0.3
C9.4,73.1,9.6,72.6,9.8,72.1z"/>
<path class="st2" d="M11.5,67.8l-0.9-0.4c-0.4,0.9-0.7,1.8-1.1,2.6l0.9,0.3C10.8,69.5,11.1,68.6,11.5,67.8z"/>
<path class="st2" d="M12.9,64.7L12,64.3c-0.4,0.9-0.8,1.7-1.2,2.6l0.9,0.4C12.1,66.4,12.5,65.6,12.9,64.7z"/>
<path class="st2" d="M14.4,61.7l-0.8-0.4c-0.4,0.8-0.8,1.7-1.3,2.6l0.8,0.4C13.5,63.4,13.9,62.5,14.4,61.7z"/>
<path class="st2" d="M15.9,58.7l-0.8-0.4c-0.5,0.8-0.9,1.7-1.3,2.5l0.8,0.4C15,60.4,15.5,59.5,15.9,58.7z"/>
<path class="st2" d="M86.3,5.5l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.7l0.2,0.9C84.5,5.9,85.4,5.7,86.3,5.5z"/>
<path class="st2" d="M120.4,3.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L120.4,3.3z"/>
<path class="st2" d="M140.2,7.2c0.9,0.3,1.8,0.5,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.8L140.2,7.2z"/>
<path class="st2" d="M117,3c0.9,0.1,1.9,0.1,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.2L117,3z"/>
<path class="st2" d="M146.9,8.4l-0.3,0.9c0.4,0.2,0.9,0.3,1.3,0.5c0.4,0.2,0.9,0.3,1.3,0.5l0.3-0.9c-0.4-0.2-0.9-0.4-1.3-0.5
C147.8,8.7,147.3,8.6,146.9,8.4z"/>
<path class="st2" d="M149.7,10.5c0.9,0.3,1.7,0.7,2.6,1.1l0.4-0.9c-0.9-0.4-1.8-0.7-2.6-1.1L149.7,10.5z"/>
<path class="st2" d="M143.4,8.2c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L143.4,8.2z"/>
<path class="st2" d="M130.4,4.8c0.9,0.2,1.8,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.9-0.4-2.8-0.6L130.4,4.8z"/>
<path class="st2" d="M136.9,6.3c0.9,0.2,1.8,0.5,2.7,0.7l0.3-0.9c-0.9-0.3-1.8-0.5-2.8-0.8L136.9,6.3z"/>
<path class="st2" d="M133.7,5.5c0.9,0.2,1.8,0.4,2.7,0.7l0.2-0.9c-0.9-0.2-1.8-0.5-2.8-0.7L133.7,5.5z"/>
<path class="st2" d="M123.7,3.7c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L123.7,3.7z"/>
<path class="st2" d="M127.1,4.2c0.9,0.2,1.9,0.3,2.8,0.5l0.2-0.9c-0.9-0.2-1.9-0.3-2.8-0.5L127.1,4.2z"/>
<path class="st2" d="M152.8,11.8c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.6-1.2L152.8,11.8z"/>
<path class="st2" d="M113.6,2.9c0.9,0,1.9,0.1,2.8,0.1l0.1-0.9c-1-0.1-1.9-0.1-2.9-0.1L113.6,2.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

61
TMP/loader_anim/loader_anim/test.html

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<style>
@keyframes pop-up{
0% {transform: scale(0);}
10% {transform: scale(1);}
95% {transform: scale(1);}
100% {transform: scale(0);}
}
@keyframes fade{
0% {opacity: 0;}
10% {opacity: 1;}
95% {opacity: 1;}
100% {opacity: 0;}
}
.anim {
animation: pop-up 6s ease-in 0s 1 normal;
transform: scale(0);
}
.box{
width: 220px;
height: 220px;
}
.box div{
position: absolute;
top: 110px;
left: 108px;
animation: fade 6s linear 0s 1 normal;
opacity: 0;
}
html, body{
font-family: 'Open Sans', sans-serif;
font-size: 0.9em;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="countUp-jquery.js"></script>
<script src="countUp.js"></script>
</head>
<body>
<main>
<div class="box">
<div id="count">0</div>
<img class="anim" src="loader.svg" />
</div>
</main>
<script>
var numAnim = new CountUp("count", 0, 100, 0, 6);
if (!numAnim.error) {
numAnim.start();
} else {
console.error(numAnim.error);
}
</script>
</body>
</html>

BIN
TMP/review coze per carmine.pptx

Binary file not shown.

BIN
TMP/smartwatch.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
TMP/store.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

57
compatibility.php

@ -0,0 +1,57 @@
<div class="compatibility pattern">
<div class="row">
<div class="col-12">
<p class="font-14 font-bold text-upper text-red p-5">Analisi compatibilità del modulo</p>
</div>
</div>
<div class="row content">
<div class="col-4 user-sheet">
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/luca.png"></div>
<div class="name">Luca</div>
<div class="rule">Stagista</div>
<p class="sheet-title">Modulo differenze culturali</p>
<div class="sheet-container">
<p class="font-10 text-upper pt-3 pb-2">Compatibilità knowledge</p>
<div class="value"><div class="percent" data-percent="60"></div></div>
<p class="font-10 text-upper pt-3 pb-2">Impatto atteso del corso sulle performance</p>
<div class="value"><div class="percent" data-percent="40"></div></div>
<p class="font-10 text-upper pt-3 pb-2">Carico didattico sostenibile</p>
<div class="value"><div class="percent" data-percent="70"></div></div>
</div>
</div>
<div class="col-4 user-sheet">
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/sara.png"></div>
<div class="name">Sarah</div>
<div class="rule">Venditore</div>
<p class="sheet-title">Modulo differenze culturali</p>
<div class="sheet-container">
<p class="font-10 text-upper pt-3 pb-2">Compatibilità knowledge</p>
<div class="value"><div class="percent" data-percent="40"></div></div>
<p class="font-10 text-upper pt-3 pb-2">Impatto atteso del corso sulle performance</p>
<div class="value"><div class="percent" data-percent="90"></div></div>
<p class="font-10 text-upper pt-3 pb-2">Carico didattico sostenibile</p>
<div class="value"><div class="percent" data-percent="30"></div></div>
</div>
</div>
</div>
<div class="row p-2">
<div class="col-8 text-center">
<button class="button big grey"><i class="fa fa-arrow-down pr-2"></i>Altre variabili</button>
</div>
</div>
<div class="row p-4">
<div class="col-12 px-2">
<button class="button big confirm">Avvia personalizzazione e attiva corso</button>
<button class="button big discard">Annulla</button>
</div>
</div>
</div>

1221
css/styles.css

File diff suppressed because it is too large

42
header.php

@ -1,21 +1,49 @@
<header>
<?php
$redHeader = array('training-pull','training-push','monitoring-intern','monitoring-seller');
?>
<header class="<?php if(in_array($getQ[0], $redHeader)){echo "red";}?>">
<div class="container">
<div class="row">
<div class="col-2"><img class="logo middle" src="<?= $BASE_PATH;?>/images/logo.png"></div>
<div class="col-2"><img class="logo middle" src="<?= $BASE_URL;?>/images/logo.png"></div>
<?php
if(in_array($getQ[0], $redHeader)){
echo "<div class=\"col-10 font-20 text-white text-right\"><span class=\"middle-right pr-3\">";
switch($getQ[0]){
case 'training-pull':
echo "Formazione pull";
break;
case 'training-push':
echo "Formazione push";
break;
case 'monitoring-intern':
echo "Augmented Skills";
break;
case 'monitoring-seller':
echo "Formazione push";
break;
}
echo "</span></div>";
}else{
?>
<div class="col-10 menu">
<ul class="middle">
<li><a href="#">Menu</a></li>
<li><a href="#">Risultati</a></li>
<li><a href="#">Piani attivi</a></li>
<li><a href="#">Report</a></li>
<li><a href="#">Moduli disponibili</a></li>
<li class="<?php if($getQ[0]=="menu"){echo "active";}?>"><a href="<?= $BASE_URL;?>/menu">Menu</a></li>
<li class="<?php if($getQ[0]=="results"){echo "active";}?>"><a href="<?= $BASE_URL;?>/results">Risultati</a></li>
<li class="<?php if($getQ[0]=="plans"){echo "active";}?>"><a href="<?= $BASE_URL;?>/plans">Piani attivi</a></li>
<li class="<?php if($getQ[0]=="report"){echo "active";}?>"><a href="<?= $BASE_URL;?>/report">Report</a></li>
<li class="<?php if($getQ[0]=="modules" || $getQ[0]=="compatibility"){echo "active";}?>"><a href="<?= $BASE_URL;?>/modules">Moduli disponibili</a></li>
<li><a href="#"><i class="fa fa-search"></i></a></li>
<li><a href="#"><i class="fa fa-bell"></i></a></li>
<li><a href="#"><i class="fa fa-user"></i></a></li>
</ul>
</div>
<?php
}
?>
</div>
</div>

BIN
images/avatar/luca.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
images/avatar/sara.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

257
images/loader.svg

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="220px" height="220px" viewBox="0 0 220 220" style="enable-background:new 0 0 220 220;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;}
.st1{fill:#A41620;}
.st2{fill:#8DF3E5;}
</style>
<g id="Ruota_x5F_04">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="360 110 110" dur="3s" repeatCount="indefinite"/>
<circle class="st0" cx="110" cy="110" r="90"/>
<path class="st1" d="M152.8,188.9c21.6-11.8,36.4-30,43.3-53.6c6.4-21.8,4.6-46-6.9-67.5v0l-0.5-0.9 c-11.9-21.8-31.5-36.7-53.6-43.2c-21.8-6.4-46-4.6-67.5,6.9h0L66.8,31C45,42.9,30.1,62.5,23.6,84.6c-6.5,22.1-4.6,46.6,7.3,68.4 l3.4-1.8l3.4-1.8c-10.9-19.9-12.6-42.4-6.7-62.6c5.9-20.2,19.6-38.1,39.5-49l0,0c19.9-10.9,42.4-12.6,62.6-6.7 c20.2,5.9,38.1,19.6,49,39.5l0,0.1c10.9,19.9,12.6,42.4,6.7,62.6c-5.9,20.2-19.6,38.1-39.5,49l1.8,3.4L152.8,188.9L152.8,188.9z"/>
</g>
<g id="Ruota_x5F_03">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="-360 110 110" dur="2s" repeatCount="indefinite"/>
<path class="st2" d="M11.7,109.9c0,27.1,11,51.6,28.7,69.4C58.2,197,82.8,208,109.9,208c27.1,0,51.6-11,69.4-28.7 C197,161.5,208,137,208,109.9c0-27.1-11-51.6-28.7-69.4c-17.8-17.8-42.3-28.7-69.4-28.7v5c25.7,0,49,10.4,65.8,27.3 c16.9,16.9,27.3,40.1,27.3,65.8c0,25.7-10.4,49-27.3,65.8c-16.9,16.9-40.1,27.3-65.8,27.3c-25.7,0-49-10.4-65.8-27.3 c-16.9-16.9-27.3-40.1-27.3-65.8H11.7L11.7,109.9z"/>
<circle class="st0" cx="110" cy="110" r="93"/>
</g>
<g id="Ruota_x5F_02">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="360 110 110" dur="6s" repeatCount="indefinite"/>
<g>
<path class="st1" d="M181.4,38.4L181.4,38.4c0.3,0.3,0.7,0.7,1,1l0.9,0.9l0.9-0.9l0.6-0.6l0.9-0.9l-0.9-0.9l-2-2l-0.9-0.9 l-0.9,0.9l-0.6,0.6l-0.9,0.9l0.9,0.9C180.7,37.8,181.1,38.1,181.4,38.4z"/>
<path class="st1" d="M187.7,45.3L187.7,45.3c0.4,0.4,0.7,0.8,0.9,1.1l0.8,1l1-0.8l0.6-0.5l1-0.8l-0.8-1l-1.9-2.2l-0.8-1l-1,0.8 l-0.6,0.5l-1,0.8l0.8,1C187.1,44.7,187.4,45,187.7,45.3z"/>
<path class="st1" d="M193.7,53.4c0.3,0.4,0.5,0.8,0.8,1.2l0.7,1.1l1.1-0.7l0.7-0.4l1-0.7l-0.7-1l-1.6-2.4l-0.7-1l-1,0.7l-0.7,0.4 l-1.1,0.7l0.7,1C193.2,52.6,193.4,53,193.7,53.4z"/>
<path class="st1" d="M173.9,31.7c0.3,0.2,0.7,0.5,1.1,0.9l1,0.8l0.8-1l0.5-0.6l0.8-1l-1-0.8l-2.2-1.8l-1-0.8l-0.8,1l-0.5,0.6 l-0.8,1l1,0.8C173.3,31.2,173.6,31.5,173.9,31.7z"/>
<path class="st1" d="M202.7,69.9c0.2,0.5,0.4,0.9,0.6,1.3c0.2,0.5,0.4,1,0.5,1.3l0.5,1.2l1.2-0.5l0.7-0.3l1.2-0.5l-0.5-1.2 l-1.1-2.7l-0.5-1.2l-1.2,0.5l-0.7,0.3l-1.2,0.5L202.7,69.9z"/>
<path class="st1" d="M198.3,60.9c0.2,0.3,0.4,0.8,0.7,1.3c0.2,0.4,0.5,0.9,0.7,1.3l0.6,1.1l1.1-0.6l0.7-0.4l1.1-0.6l-0.6-1.1 l-1.4-2.6l-0.6-1.1l-1.1,0.6l-0.7,0.4l-1.1,0.6L198.3,60.9z"/>
<path class="st1" d="M211.4,97l-1.3,0.1l0.1,1.3c0.1,0.5,0.1,1,0.2,1.4c0,0.3,0.1,0.8,0.1,1.4l0.1,1.3l1.3-0.1l0.8-0.1l1.3-0.1 l-0.1-1.3l-0.3-2.9l-0.1-1.3l-1.3,0.1L211.4,97z"/>
<path class="st1" d="M205.6,77.4l0.4,1.2c0.2,0.5,0.3,1,0.4,1.4c0.1,0.4,0.3,0.9,0.4,1.4l0.4,1.2l1.2-0.4l0.8-0.2l1.2-0.4 l-0.4-1.2l-0.9-2.8l-0.4-1.2l-1.2,0.4l-0.8,0.2L205.6,77.4z"/>
<path class="st1" d="M165.7,25.6c0.4,0.3,0.8,0.5,1.2,0.8l1.1,0.7l0.7-1.1l0.4-0.7l0.7-1.1l-1.1-0.7l-2.4-1.6l-1.1-0.7l-0.7,1.1 l-0.4,0.7l-0.7,1.1l1.1,0.7C164.9,25.1,165.3,25.4,165.7,25.6z"/>
<path class="st1" d="M209.6,86.8l-1.3,0.3l0.3,1.2c0.1,0.6,0.2,1.1,0.3,1.4c0.1,0.4,0.2,0.9,0.3,1.4l0.2,1.3l1.3-0.3l0.8-0.2 l1.2-0.3l-0.3-1.2l-0.6-2.8l-0.3-1.2l-1.2,0.3L209.6,86.8z"/>
<path class="st1" d="M71.4,203.1c-0.4-0.2-0.8-0.3-1.3-0.6l-1.2-0.5l-0.5,1.2l-0.3,0.7l-0.5,1.2l1.2,0.5l2.7,1.1l1.2,0.5l0.5-1.2 l0.3-0.7l0.5-1.2l-1.2-0.5C72.3,203.5,71.9,203.4,71.4,203.1z"/>
<path class="st1" d="M212,116.6l-1.3-0.1l-0.1,1.3c0,0.6-0.1,1.1-0.1,1.4c0,0.4-0.1,0.9-0.1,1.4l-0.1,1.3l1.3,0.1l0.8,0.1l1.3,0.1 l0.1-1.3l0.3-2.9l0.1-1.3l-1.3-0.1L212,116.6z"/>
<path class="st1" d="M213,107.1h-0.8h-1.3l0,1.3l0,0.4v0c0,0.2,0,0.4,0,1c0,0.6,0,0.8,0,1v0l0,0.4l0,1.3h1.3h0.8h1.3v-1.3v-2.9 v-1.3H213z"/>
<path class="st1" d="M62.9,199.2c-0.5-0.3-0.9-0.5-1.3-0.7l-1.1-0.6l-0.6,1.1l-0.4,0.7l-0.6,1.1l1.1,0.6l2.6,1.4l1.1,0.6l0.6-1.1 l0.4-0.7l0.6-1.1l-1.1-0.6C63.7,199.6,63.2,199.3,62.9,199.2z"/>
<path class="st1" d="M157.1,20.5c0.5,0.3,0.9,0.5,1.3,0.7l1.1,0.6l0.6-1.1l0.4-0.7l0.6-1.1l-1.1-0.6l-2.6-1.4l-1.1-0.6l-0.6,1.1 l-0.4,0.7l-0.6,1.1l1.1,0.6C156.3,20.1,156.8,20.3,157.1,20.5z"/>
<path class="st1" d="M54.3,194c-0.4-0.3-0.8-0.5-1.2-0.8l-1.1-0.7l-0.7,1.1l-0.4,0.7l-0.7,1.1l1.1,0.7l2.4,1.6l1.1,0.7l0.7-1.1 l0.4-0.7l0.7-1.1l-1.1-0.7C55.1,194.6,54.7,194.3,54.3,194z"/>
<path class="st1" d="M148.6,16.5c0.4,0.2,0.8,0.3,1.3,0.6l1.2,0.5l0.5-1.2l0.3-0.7l0.5-1.2l-1.2-0.5l-2.7-1.1l-1.2-0.5l-0.5,1.2 l-0.3,0.7l-0.5,1.2l1.2,0.5C147.7,16.1,148.1,16.3,148.6,16.5z"/>
<path class="st1" d="M181.4,181.5c-18.3,18.3-43.6,29.6-71.5,29.6c-11,0-21.6-1.8-31.5-5l-1.4,2.8c10.4,3.5,21.4,5.3,33,5.3 c28.8,0,54.8-11.7,73.7-30.5c15-15,25.4-34.5,29.1-56.3l-3.1-0.2C205.9,148.2,195.8,167,181.4,181.5z"/>
<path class="st1" d="M8.8,110c0-27.9,11.3-53.2,29.6-71.5C56.7,20.2,82,8.9,109.9,8.9c11,0,21.6,1.8,31.5,5l1.4-2.8 c-10.4-3.5-21.4-5.3-33-5.3c-28.8,0-54.8,11.7-73.7,30.5C17.4,55.2,5.7,81.2,5.7,110c0,28.8,11.7,54.8,30.5,73.7 c3.6,3.6,7.5,6.9,11.6,10l1.4-2.8c-3.8-2.9-7.4-6-10.8-9.4C20.1,163.2,8.8,137.9,8.8,110z"/>
</g>
</g>
<g id="Ruota_x5F_01">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="-360 110 110" dur="6s"/>
<g>
<path class="st2" d="M14.7,159l-0.8,0.4c0.4,0.8,0.9,1.7,1.3,2.5l0.8-0.4C15.6,160.6,15.1,159.8,14.7,159z"/>
<path class="st2" d="M8.2,143.5l-0.9,0.3c0.3,0.9,0.6,1.8,0.9,2.7l0.9-0.3C8.8,145.3,8.5,144.4,8.2,143.5z"/>
<path class="st2" d="M6.3,137l-0.9,0.2c0.2,0.9,0.5,1.8,0.8,2.7l0.9-0.3C6.8,138.8,6.5,137.9,6.3,137z"/>
<path class="st2" d="M9.3,146.6L8.4,147c0.3,0.9,0.7,1.8,1,2.7l0.9-0.3C10,148.4,9.6,147.5,9.3,146.6z"/>
<path class="st2" d="M10.5,149.8l-0.9,0.3c0.4,0.9,0.7,1.8,1.1,2.6l0.9-0.4C11.2,151.5,10.9,150.7,10.5,149.8z"/>
<path class="st2" d="M13.2,156l-0.8,0.4c0.4,0.9,0.8,1.7,1.3,2.6l0.8-0.4C14,157.7,13.6,156.8,13.2,156z"/>
<path class="st2" d="M5.5,133.7l-0.9,0.2c0.2,0.9,0.4,1.9,0.7,2.8l0.9-0.2C5.9,135.6,5.7,134.7,5.5,133.7z"/>
<path class="st2" d="M12.3,154.1c-0.2-0.4-0.3-0.8-0.5-1.2l-0.9,0.4c0.2,0.4,0.3,0.8,0.5,1.2c0.2,0.5,0.4,0.9,0.6,1.4l0.8-0.4 C12.8,155,12.5,154.5,12.3,154.1z"/>
<path class="st2" d="M7.2,140.3l-0.9,0.3c0.3,0.9,0.6,1.8,0.8,2.7L8,143C7.7,142.1,7.5,141.2,7.2,140.3z"/>
<path class="st2" d="M217,103.1l0.9-0.1c-0.1-0.9-0.1-1.9-0.2-2.8l-0.9,0.1C216.8,101.2,216.9,102.2,217,103.1z"/>
<path class="st2" d="M4.8,130.5l-0.9,0.2c0.2,0.9,0.4,1.9,0.6,2.8l0.9-0.2C5.2,132.3,5,131.4,4.8,130.5z"/>
<path class="st2" d="M217.1,106.5l0.9,0c0-1-0.1-1.9-0.1-2.8l-0.9,0.1C217,104.6,217.1,105.5,217.1,106.5z"/>
<path class="st2" d="M217.2,109.8h0.9c0-1,0-1.9,0-2.9l-0.9,0C217.2,108,217.2,108.9,217.2,109.8z"/>
<path class="st2" d="M4.2,127.1l-0.9,0.1c0.2,0.9,0.3,1.9,0.5,2.8l0.9-0.2C4.5,129,4.4,128.1,4.2,127.1z"/>
<path class="st2" d="M3.7,123.8l-0.9,0.1c0.1,0.9,0.3,1.9,0.4,2.8l0.9-0.1C4,125.7,3.8,124.7,3.7,123.8z"/>
<path class="st2" d="M3.3,120.5l-0.9,0.1c0.1,0.9,0.2,1.9,0.3,2.8l0.9-0.1C3.5,122.3,3.4,121.4,3.3,120.5z"/>
<path class="st2" d="M3.1,117.1l-0.9,0.1c0.1,0.9,0.1,1.9,0.2,2.8l0.9-0.1C3.2,119,3.1,118,3.1,117.1z"/>
<path class="st2" d="M39.4,190.6l-0.6,0.7c0.7,0.6,1.4,1.2,2.2,1.8l0.6-0.7C40.8,191.9,40.1,191.2,39.4,190.6z"/>
<path class="st2" d="M36.9,188.4l-0.6,0.7c0.7,0.6,1.4,1.3,2.1,1.9l0.6-0.7C38.3,189.6,37.6,189,36.9,188.4z"/>
<path class="st2" d="M34.5,186l-0.7,0.7c0.7,0.7,1.4,1.3,2,2l0.6-0.7C35.8,187.3,35.1,186.7,34.5,186z"/>
<path class="st2" d="M44.6,194.9l-0.6,0.7c0.8,0.6,1.5,1.1,2.3,1.7l0.5-0.8C46.1,196,45.3,195.5,44.6,194.9z"/>
<path class="st2" d="M52.9,200.7l-0.5,0.8c0.8,0.5,1.6,1,2.4,1.5l0.5-0.8C54.4,201.7,53.6,201.2,52.9,200.7z"/>
<path class="st2" d="M32.1,183.6l-0.7,0.6c0.7,0.7,1.3,1.4,2,2l0.7-0.7C33.4,185,32.8,184.3,32.1,183.6z"/>
<path class="st2" d="M47.3,196.9l-0.5,0.8c0.8,0.6,1.5,1.1,2.3,1.6l0.5-0.8C48.8,198,48,197.5,47.3,196.9z"/>
<path class="st2" d="M50,198.8l-0.5,0.8c0.8,0.5,1.6,1.1,2.4,1.6l0.5-0.8C51.6,199.9,50.8,199.4,50,198.8z"/>
<path class="st2" d="M25.5,176l-0.7,0.6c0.6,0.7,1.2,1.5,1.8,2.2l0.7-0.6C26.7,177.4,26.1,176.7,25.5,176z"/>
<path class="st2" d="M19.7,167.7l-0.8,0.5c0.5,0.8,1,1.6,1.6,2.4l0.8-0.5C20.7,169.3,20.2,168.5,19.7,167.7z"/>
<path class="st2" d="M18,164.9l-0.8,0.5c0.5,0.8,1,1.6,1.5,2.4l0.8-0.5C18.9,166.5,18.4,165.7,18,164.9z"/>
<path class="st2" d="M21.6,170.5l-0.8,0.5c0.5,0.8,1.1,1.6,1.6,2.3l0.8-0.5C22.6,172.1,22.1,171.3,21.6,170.5z"/>
<path class="st2" d="M23.5,173.3l-0.8,0.5c0.6,0.8,1.1,1.5,1.7,2.3l0.7-0.6C24.6,174.8,24.1,174,23.5,173.3z"/>
<path class="st2" d="M27.7,178.6l-0.7,0.6c0.6,0.7,1.2,1.5,1.9,2.2l0.7-0.6C28.9,180,28.3,179.3,27.7,178.6z"/>
<path class="st2" d="M16.3,161.9l-0.8,0.4c0.5,0.8,0.9,1.7,1.4,2.5l0.8-0.5C17.2,163.6,16.7,162.8,16.3,161.9z"/>
<path class="st2" d="M29.8,181.1l-0.7,0.6c0.6,0.7,1.3,1.4,1.9,2.1l0.7-0.6C31.1,182.5,30.5,181.8,29.8,181.1z"/>
<path class="st2" d="M188,36.5l0.7-0.6c-0.7-0.7-1.3-1.4-2-2.1l-0.7,0.7C186.7,35.1,187.4,35.8,188,36.5z"/>
<path class="st2" d="M185.6,34.1l0.7-0.7c-0.7-0.7-1.4-1.3-2-2l-0.6,0.7C184.3,32.8,185,33.4,185.6,34.1z"/>
<path class="st2" d="M190.3,39l0.7-0.6c-0.6-0.7-1.3-1.4-1.9-2.1l-0.7,0.6C189,37.6,189.6,38.3,190.3,39z"/>
<path class="st2" d="M55.3,203.2c0.8,0.5,1.6,0.9,2.5,1.4l0.4-0.8c-0.8-0.5-1.6-0.9-2.5-1.4L55.3,203.2z"/>
<path class="st2" d="M183.2,31.7l0.6-0.7c-0.7-0.6-1.4-1.3-2.1-1.9l-0.6,0.7C181.8,30.5,182.5,31.1,183.2,31.7z"/>
<path class="st2" d="M194.6,44.2l0.7-0.6c-0.6-0.8-1.2-1.5-1.8-2.2l-0.7,0.6C193.4,42.7,194,43.4,194.6,44.2z"/>
<path class="st2" d="M196.6,46.9l0.8-0.5c-0.6-0.8-1.1-1.5-1.7-2.3l-0.7,0.6C195.5,45.3,196,46.1,196.6,46.9z"/>
<path class="st2" d="M180.7,29.5l0.6-0.7c-0.7-0.6-1.4-1.2-2.2-1.9l-0.6,0.7C179.3,28.2,180,28.8,180.7,29.5z"/>
<path class="st2" d="M192.5,41.5l0.7-0.6c-0.6-0.7-1.2-1.5-1.9-2.2l-0.7,0.6C191.2,40.1,191.9,40.8,192.5,41.5z"/>
<path class="st2" d="M170.1,21.2l0.5-0.8c-0.8-0.5-1.6-1.1-2.4-1.6l-0.5,0.8C168.5,20.2,169.3,20.7,170.1,21.2z"/>
<path class="st2" d="M164.8,16.8c-0.8-0.5-1.6-1-2.5-1.4l-0.4,0.8c0.8,0.5,1.6,0.9,2.5,1.4L164.8,16.8z"/>
<path class="st2" d="M161.9,15.2c-0.8-0.5-1.7-0.9-2.5-1.3l-0.4,0.8c0.8,0.4,1.7,0.9,2.5,1.3L161.9,15.2z"/>
<path class="st2" d="M167.2,19.4l0.5-0.8c-0.8-0.5-1.6-1-2.4-1.5l-0.5,0.8C165.6,18.4,166.5,18.9,167.2,19.4z"/>
<path class="st2" d="M198.5,49.6l0.8-0.5c-0.5-0.8-1.1-1.6-1.6-2.3l-0.8,0.5C197.5,48.1,198,48.8,198.5,49.6z"/>
<path class="st2" d="M175.5,25.2l0.6-0.7c-0.8-0.6-1.5-1.2-2.3-1.7l-0.5,0.8C174,24,174.8,24.6,175.5,25.2z"/>
<path class="st2" d="M172.8,23.2l0.5-0.8c-0.8-0.6-1.5-1.1-2.3-1.6l-0.5,0.8C171.3,22.1,172.1,22.6,172.8,23.2z"/>
<path class="st2" d="M178.2,27.3l0.6-0.7c-0.7-0.6-1.5-1.2-2.2-1.8l-0.6,0.7C176.7,26.1,177.4,26.7,178.2,27.3z"/>
<path class="st2" d="M209.6,70.4l0.9-0.3c-0.4-0.9-0.7-1.8-1.1-2.6l-0.9,0.4C208.9,68.7,209.2,69.5,209.6,70.4z"/>
<path class="st2" d="M214.5,86.5l0.9-0.2c-0.2-0.9-0.4-1.9-0.7-2.8l-0.9,0.2C214.1,84.6,214.3,85.5,214.5,86.5z"/>
<path class="st2" d="M213.8,83.2l0.9-0.2c-0.2-0.9-0.5-1.8-0.7-2.8l-0.9,0.3C213.3,81.4,213.5,82.3,213.8,83.2z"/>
<path class="st2" d="M212.9,79.9l0.9-0.3c-0.3-0.9-0.5-1.8-0.8-2.7l-0.9,0.3C212.3,78.1,212.6,79,212.9,79.9z"/>
<path class="st2" d="M215.2,89.8l0.9-0.2c-0.2-0.9-0.4-1.9-0.6-2.8l-0.9,0.2C214.9,87.9,215.1,88.8,215.2,89.8z"/>
<path class="st2" d="M211.9,76.7l0.9-0.3c-0.3-0.9-0.6-1.8-0.9-2.7l-0.9,0.3C211.3,74.9,211.6,75.8,211.9,76.7z"/>
<path class="st2" d="M216.3,96.4l0.9-0.1c-0.1-0.9-0.3-1.9-0.4-2.8l-0.9,0.1C216.1,94.5,216.2,95.5,216.3,96.4z"/>
<path class="st2" d="M215.8,93.1l0.9-0.1c-0.2-0.9-0.3-1.9-0.5-2.8l-0.9,0.2C215.5,91.2,215.7,92.1,215.8,93.1z"/>
<path class="st2" d="M202.1,55.3l0.8-0.5c-0.5-0.8-1-1.6-1.5-2.4l-0.8,0.5C201.2,53.7,201.7,54.5,202.1,55.3z"/>
<path class="st2" d="M203.8,58.2l0.8-0.4c-0.5-0.8-0.9-1.7-1.4-2.5l-0.8,0.5C202.9,56.6,203.4,57.4,203.8,58.2z"/>
<path class="st2" d="M200.4,52.4l0.8-0.5c-0.5-0.8-1-1.6-1.6-2.4l-0.8,0.5C199.4,50.8,199.9,51.6,200.4,52.4z"/>
<path class="st2" d="M205.4,61.2l0.8-0.4c-0.4-0.8-0.9-1.7-1.3-2.5l-0.8,0.4C204.5,59.5,205,60.4,205.4,61.2z"/>
<path class="st2" d="M206.9,64.2l0.8-0.4c-0.4-0.9-0.8-1.7-1.3-2.6l-0.8,0.4C206.1,62.5,206.5,63.4,206.9,64.2z"/>
<path class="st2" d="M216.7,99.7l0.9-0.1c-0.1-0.9-0.2-1.9-0.3-2.8l-0.9,0.1C216.5,97.9,216.6,98.8,216.7,99.7z"/>
<path class="st2" d="M207.7,65.9c0.2,0.5,0.4,0.9,0.6,1.4l0.9-0.4c-0.2-0.5-0.4-0.9-0.6-1.4c-0.2-0.4-0.4-0.8-0.6-1.2l-0.8,0.4 C207.3,65.1,207.5,65.5,207.7,65.9z"/>
<path class="st2" d="M210.8,73.5l0.9-0.3c-0.3-0.9-0.7-1.8-1-2.7l-0.9,0.3C210.1,71.8,210.4,72.7,210.8,73.5z"/>
<path class="st2" d="M194.8,175.5l0.7,0.6c0.6-0.8,1.1-1.5,1.7-2.3l-0.8-0.5C195.9,174,195.4,174.8,194.8,175.5z"/>
<path class="st2" d="M190.5,180.7l0.7,0.6c0.6-0.7,1.2-1.4,1.9-2.2l-0.7-0.6C191.8,179.3,191.1,180,190.5,180.7z"/>
<path class="st2" d="M192.7,178.2l0.7,0.6c0.6-0.7,1.2-1.5,1.8-2.2l-0.7-0.6C193.9,176.7,193.3,177.5,192.7,178.2z"/>
<path class="st2" d="M185.9,185.6l0.7,0.7c0.7-0.7,1.3-1.4,2-2l-0.7-0.6C187.2,184.3,186.6,185,185.9,185.6z"/>
<path class="st2" d="M202.3,164.4l0.8,0.5c0.5-0.8,0.9-1.6,1.4-2.5l-0.8-0.4C203.3,162.8,202.8,163.6,202.3,164.4z"/>
<path class="st2" d="M188.3,183.2l0.7,0.6c0.6-0.7,1.3-1.4,1.9-2.1l-0.7-0.6C189.5,181.8,188.9,182.5,188.3,183.2z"/>
<path class="st2" d="M200.6,167.3l0.8,0.5c0.5-0.8,1-1.6,1.5-2.4l-0.8-0.5C201.6,165.7,201.1,166.5,200.6,167.3z"/>
<path class="st2" d="M196.8,172.8l0.8,0.5c0.6-0.8,1.1-1.5,1.6-2.3l-0.8-0.5C197.9,171.3,197.4,172.1,196.8,172.8z"/>
<path class="st2" d="M198.7,170.1l0.8,0.5c0.5-0.8,1.1-1.6,1.6-2.4l-0.8-0.5C199.8,168.5,199.3,169.3,198.7,170.1z"/>
<path class="st2" d="M158.9,13.6c-0.8-0.4-1.7-0.8-2.6-1.3l-0.4,0.8c0.9,0.4,1.7,0.8,2.5,1.2L158.9,13.6z"/>
<path class="st2" d="M170.4,198.5l0.5,0.8c0.8-0.5,1.6-1.1,2.3-1.6l-0.5-0.8C172,197.4,171.2,198,170.4,198.5z"/>
<path class="st2" d="M173.2,196.6l0.5,0.8c0.8-0.6,1.5-1.1,2.3-1.7l-0.6-0.7C174.7,195.5,173.9,196,173.2,196.6z"/>
<path class="st2" d="M167.6,200.4l0.5,0.8c0.8-0.5,1.6-1,2.4-1.6l-0.5-0.8C169.2,199.3,168.4,199.9,167.6,200.4z"/>
<path class="st2" d="M175.8,194.6l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C177.3,193.4,176.6,194,175.8,194.6z"/>
<path class="st2" d="M181,190.3l0.6,0.7c0.7-0.6,1.4-1.3,2.1-1.9l-0.6-0.7C182.4,189,181.7,189.6,181,190.3z"/>
<path class="st2" d="M183.5,188l0.6,0.7c0.7-0.7,1.4-1.3,2-2l-0.7-0.7C184.9,186.7,184.2,187.3,183.5,188z"/>
<path class="st2" d="M178.5,192.4l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C179.9,191.2,179.2,191.8,178.5,192.4z"/>
<path class="st2" d="M205.6,158.5l0.8,0.4c0.4-0.8,0.8-1.7,1.3-2.6l-0.8-0.4C206.4,156.8,206,157.7,205.6,158.5z"/>
<path class="st2" d="M215.9,126.6l0.9,0.1c0.1-0.9,0.3-1.9,0.4-2.8l-0.9-0.1C216.2,124.7,216,125.7,215.9,126.6z"/>
<path class="st2" d="M215.3,129.9l0.9,0.2c0.2-0.9,0.3-1.9,0.5-2.8l-0.9-0.1C215.6,128.1,215.5,129,215.3,129.9z"/>
<path class="st2" d="M214.6,133.2l0.9,0.2c0.2-0.9,0.4-1.9,0.6-2.8l-0.9-0.2C215,131.4,214.8,132.3,214.6,133.2z"/>
<path class="st2" d="M213.8,136.5l0.9,0.2c0.2-0.9,0.5-1.8,0.7-2.8l-0.9-0.2C214.3,134.7,214.1,135.6,213.8,136.5z"/>
<path class="st2" d="M216.3,123.3l0.9,0.1c0.1-0.9,0.2-1.9,0.3-2.8l-0.9-0.1C216.6,121.4,216.5,122.3,216.3,123.3z"/>
<path class="st2" d="M217.2,110.4c0,0.9,0,1.9,0,2.8l0.9,0c0-1,0-1.9,0-2.9H217.2z"/>
<path class="st2" d="M204,161.5l0.8,0.4c0.5-0.8,0.9-1.7,1.3-2.5l-0.8-0.4C204.9,159.8,204.4,160.6,204,161.5z"/>
<path class="st2" d="M217,116.6l0.9,0.1c0.1-0.9,0.1-1.9,0.1-2.8l-0.9,0C217.1,114.7,217,115.6,217,116.6z"/>
<path class="st2" d="M216.7,119.9l0.9,0.1c0.1-0.9,0.2-1.9,0.2-2.8l-0.9-0.1C216.9,118,216.8,119,216.7,119.9z"/>
<path class="st2" d="M207,155.5l0.8,0.4c0.4-0.9,0.8-1.7,1.2-2.6l-0.9-0.4C207.8,153.8,207.4,154.6,207,155.5z"/>
<path class="st2" d="M164.7,202.1l0.5,0.8c0.8-0.5,1.6-1,2.4-1.5l-0.5-0.8C166.3,201.2,165.5,201.6,164.7,202.1z"/>
<path class="st2" d="M208.4,152.4l0.9,0.4c0.4-0.9,0.7-1.7,1.1-2.6l-0.9-0.3C209.1,150.7,208.8,151.5,208.4,152.4z"/>
<path class="st2" d="M210.9,146.1l0.9,0.3c0.3-0.9,0.6-1.8,0.9-2.7l-0.9-0.3C211.5,144.4,211.2,145.2,210.9,146.1z"/>
<path class="st2" d="M212,143l0.9,0.3c0.3-0.9,0.6-1.8,0.8-2.7l-0.9-0.3C212.5,141.2,212.3,142.1,212,143z"/>
<path class="st2" d="M213,139.7l0.9,0.3c0.3-0.9,0.5-1.8,0.8-2.7l-0.9-0.2C213.5,137.9,213.2,138.8,213,139.7z"/>
<path class="st2" d="M210.2,147.9c-0.2,0.5-0.4,0.9-0.5,1.4l0.9,0.3c0.2-0.5,0.4-0.9,0.6-1.4c0.2-0.4,0.3-0.8,0.5-1.3l-0.9-0.3 C210.5,147.1,210.4,147.5,210.2,147.9z"/>
<path class="st2" d="M103.5,217.9c0.9,0.1,1.9,0.1,2.8,0.1l0-0.9c-0.9,0-1.9-0.1-2.8-0.1L103.5,217.9z"/>
<path class="st2" d="M90,216.2c0.9,0.2,1.9,0.3,2.8,0.5l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.5L90,216.2z"/>
<path class="st2" d="M110.3,217.2v0.9c1,0,1.9,0,2.8,0l0-0.9C112.2,217.2,111.2,217.2,110.3,217.2z"/>
<path class="st2" d="M96.7,217.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L96.7,217.3z"/>
<path class="st2" d="M86.7,215.6c0.9,0.2,1.9,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.8-0.4-2.8-0.6L86.7,215.6z"/>
<path class="st2" d="M93.4,216.8c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L93.4,216.8z"/>
<path class="st2" d="M106.9,218.1c1,0,1.9,0,2.8,0v-0.9c-0.9,0-1.9,0-2.8,0L106.9,218.1z"/>
<path class="st2" d="M58.2,204.9c0.8,0.5,1.7,0.9,2.5,1.3l0.4-0.8c-0.8-0.4-1.7-0.9-2.5-1.3L58.2,204.9z"/>
<path class="st2" d="M161.8,203.8l0.4,0.8c0.8-0.5,1.7-0.9,2.5-1.4l-0.5-0.8C163.5,202.9,162.6,203.3,161.8,203.8z"/>
<path class="st2" d="M83.4,214.8c0.9,0.2,1.8,0.5,2.8,0.7l0.2-0.9c-0.9-0.2-1.8-0.4-2.7-0.7L83.4,214.8z"/>
<path class="st2" d="M64.3,207.9c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.9c-0.9-0.4-1.7-0.8-2.6-1.2L64.3,207.9z"/>
<path class="st2" d="M61.2,206.5c0.8,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.5-1.2L61.2,206.5z"/>
<path class="st2" d="M67.4,209.3c0.9,0.4,1.7,0.7,2.6,1.1l0.3-0.9c-0.9-0.3-1.7-0.7-2.6-1.1L67.4,209.3z"/>
<path class="st2" d="M70.8,209.7l-0.3,0.9c0.4,0.2,0.8,0.3,1.3,0.5c0.5,0.2,0.9,0.3,1.4,0.5l0.3-0.9c-0.5-0.2-0.9-0.3-1.4-0.5 C71.7,210.1,71.3,209.9,70.8,209.7z"/>
<path class="st2" d="M76.9,212.9c0.9,0.3,1.8,0.6,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.5-2.7-0.8L76.9,212.9z"/>
<path class="st2" d="M73.7,211.8c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L73.7,211.8z"/>
<path class="st2" d="M80.1,213.9c0.9,0.3,1.8,0.5,2.7,0.8l0.2-0.9c-0.9-0.2-1.8-0.5-2.7-0.7L80.1,213.9z"/>
<path class="st2" d="M100.1,217.7c0.9,0.1,1.9,0.2,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.1-2.8-0.2L100.1,217.7z"/>
<path class="st2" d="M149.7,209.5l0.3,0.9c0.9-0.4,1.8-0.7,2.6-1.1l-0.4-0.9C151.4,208.8,150.5,209.2,149.7,209.5z"/>
<path class="st2" d="M113.6,217.1l0,0.9c0.9,0,1.9-0.1,2.8-0.1l-0.1-0.9C115.5,217,114.6,217.1,113.6,217.1z"/>
<path class="st2" d="M143.3,211.8l0.3,0.9c0.9-0.3,1.8-0.6,2.7-0.9l-0.3-0.9C145.1,211.2,144.2,211.5,143.3,211.8z"/>
<path class="st2" d="M140.1,212.8l0.3,0.9c0.9-0.3,1.8-0.5,2.7-0.8l-0.3-0.9C141.9,212.3,141,212.6,140.1,212.8z"/>
<path class="st2" d="M158.8,205.4l0.4,0.8c0.8-0.4,1.7-0.9,2.5-1.3l-0.4-0.8C160.5,204.5,159.7,204.9,158.8,205.4z"/>
<path class="st2" d="M154.1,207.7c-0.4,0.2-0.9,0.4-1.3,0.6l0.4,0.9c0.4-0.2,0.9-0.4,1.3-0.6c0.4-0.2,0.8-0.4,1.3-0.6l-0.4-0.8 C154.9,207.3,154.5,207.5,154.1,207.7z"/>
<path class="st2" d="M155.8,206.9l0.4,0.8c0.9-0.4,1.7-0.8,2.6-1.2l-0.4-0.8C157.5,206,156.7,206.5,155.8,206.9z"/>
<path class="st2" d="M146.5,210.7l0.3,0.9c0.9-0.3,1.8-0.7,2.7-1l-0.3-0.9C148.3,210.1,147.4,210.4,146.5,210.7z"/>
<path class="st2" d="M123.7,216.3l0.1,0.9c0.9-0.1,1.9-0.3,2.8-0.4l-0.1-0.9C125.6,216,124.6,216.2,123.7,216.3z"/>
<path class="st2" d="M120.3,216.7l0.1,0.9c0.9-0.1,1.9-0.2,2.8-0.3l-0.1-0.9C122.2,216.5,121.3,216.6,120.3,216.7z"/>
<path class="st2" d="M117,217l0.1,0.9c0.9-0.1,1.9-0.1,2.8-0.2l-0.1-0.9C118.9,216.8,117.9,216.9,117,217z"/>
<path class="st2" d="M133.6,214.5l0.2,0.9c0.9-0.2,1.8-0.4,2.8-0.7l-0.2-0.9C135.4,214.1,134.5,214.3,133.6,214.5z"/>
<path class="st2" d="M136.9,213.7l0.2,0.9c0.9-0.2,1.8-0.5,2.7-0.8l-0.3-0.9C138.7,213.3,137.8,213.5,136.9,213.7z"/>
<path class="st2" d="M130.3,215.2l0.2,0.9c0.9-0.2,1.9-0.4,2.8-0.6l-0.2-0.9C132.2,214.8,131.3,215,130.3,215.2z"/>
<path class="st2" d="M127,215.8l0.1,0.9c0.9-0.2,1.9-0.3,2.8-0.5l-0.2-0.9C128.9,215.5,127.9,215.7,127,215.8z"/>
<path class="st2" d="M41.9,192.8l-0.6,0.7c0.7,0.6,1.5,1.2,2.2,1.8l0.6-0.7C43.4,194,42.7,193.4,41.9,192.8z"/>
<path class="st2" d="M110.3,2.8c0.9,0,1.9,0,2.8,0l0-0.9c-1,0-1.9,0-2.9,0V2.8z"/>
<path class="st2" d="M55.2,17.9l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.5l0.5,0.8C53.6,18.9,54.4,18.4,55.2,17.9z"/>
<path class="st2" d="M49.5,21.6L49,20.8c-0.8,0.5-1.6,1.1-2.3,1.6l0.5,0.8C47.9,22.6,48.7,22.1,49.5,21.6z"/>
<path class="st2" d="M52.3,19.7l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.6l0.5,0.8C50.7,20.7,51.5,20.2,52.3,19.7z"/>
<path class="st2" d="M65.9,12.3c0.4-0.2,0.8-0.4,1.2-0.5l-0.4-0.9c-0.4,0.2-0.8,0.4-1.3,0.5c-0.5,0.2-0.9,0.4-1.3,0.6l0.4,0.8 C65,12.7,65.5,12.5,65.9,12.3z"/>
<path class="st2" d="M61.1,14.7l-0.4-0.8c-0.8,0.4-1.7,0.9-2.5,1.3l0.4,0.8C59.4,15.5,60.2,15.1,61.1,14.7z"/>
<path class="st2" d="M64.1,13.2l-0.4-0.8c-0.9,0.4-1.7,0.8-2.6,1.3l0.4,0.8C62.4,14,63.2,13.6,64.1,13.2z"/>
<path class="st2" d="M38.9,29.8l-0.6-0.7c-0.7,0.6-1.4,1.3-2.1,1.9l0.6,0.7C37.5,31.1,38.2,30.5,38.9,29.8z"/>
<path class="st2" d="M46.7,23.5l-0.5-0.8c-0.8,0.6-1.5,1.1-2.3,1.7l0.6,0.7C45.2,24.6,46,24.1,46.7,23.5z"/>
<path class="st2" d="M34,34.5l-0.7-0.7c-0.7,0.7-1.3,1.4-2,2.1l0.7,0.6C32.6,35.8,33.3,35.1,34,34.5z"/>
<path class="st2" d="M36.4,32.1l-0.6-0.7c-0.7,0.7-1.4,1.3-2.1,2l0.7,0.7C35,33.4,35.7,32.8,36.4,32.1z"/>
<path class="st2" d="M41.4,27.6l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.9l0.6,0.7C40,28.9,40.7,28.2,41.4,27.6z"/>
<path class="st2" d="M44,25.5l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.8l0.6,0.7C42.6,26.7,43.3,26.1,44,25.5z"/>
<path class="st2" d="M106.9,2.9c0.9,0,1.9,0,2.8,0V1.9c-1,0-1.9,0-2.9,0L106.9,2.9z"/>
<path class="st2" d="M103,3l-0.1-0.9c-1,0.1-1.9,0.1-2.8,0.2l0.1,0.9C101.1,3.2,102.1,3.1,103,3z"/>
<path class="st2" d="M99.6,3.3l-0.1-0.9c-0.9,0.1-1.9,0.2-2.8,0.3l0.1,0.9C97.8,3.5,98.7,3.4,99.6,3.3z"/>
<path class="st2" d="M96.3,3.7l-0.1-0.9c-0.9,0.1-1.9,0.3-2.8,0.4l0.1,0.9C94.4,4,95.3,3.8,96.3,3.7z"/>
<path class="st2" d="M106.4,2.9l0-0.9c-1,0-1.9,0.1-2.9,0.1l0.1,0.9C104.5,3,105.4,2.9,106.4,2.9z"/>
<path class="st2" d="M31.6,36.9L31,36.2c-0.6,0.7-1.3,1.4-1.9,2.1l0.7,0.6C30.4,38.3,31,37.6,31.6,36.9z"/>
<path class="st2" d="M92.9,4.2l-0.1-0.9c-0.9,0.2-1.9,0.3-2.8,0.5l0.2,0.9C91.1,4.5,92,4.3,92.9,4.2z"/>
<path class="st2" d="M83.1,6.3l-0.2-0.9c-0.9,0.2-1.8,0.5-2.8,0.8L80.3,7C81.2,6.8,82.1,6.5,83.1,6.3z"/>
<path class="st2" d="M73.4,9.3l-0.3-0.9c-0.9,0.3-1.8,0.7-2.7,1l0.3,0.9C71.6,9.9,72.5,9.6,73.4,9.3z"/>
<path class="st2" d="M76.6,8.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.9l0.3,0.9C74.8,8.8,75.7,8.5,76.6,8.2z"/>
<path class="st2" d="M79.8,7.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.8L77.1,8C78,7.7,78.9,7.4,79.8,7.2z"/>
<path class="st2" d="M70.3,10.5l-0.3-0.9c-0.9,0.4-1.8,0.7-2.6,1.1l0.4,0.9C68.5,11.2,69.4,10.8,70.3,10.5z"/>
<path class="st2" d="M89.6,4.8l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.6l0.2,0.9C87.8,5.2,88.7,5,89.6,4.8z"/>
<path class="st2" d="M58.1,16.3l-0.4-0.8c-0.8,0.5-1.7,0.9-2.5,1.4l0.5,0.8C56.5,17.2,57.3,16.7,58.1,16.3z"/>
<path class="st2" d="M29.4,39.4l-0.7-0.6c-0.6,0.7-1.2,1.4-1.9,2.2l0.7,0.6C28.1,40.8,28.8,40.1,29.4,39.4z"/>
<path class="st2" d="M4.1,93.6l-0.9-0.1c-0.1,0.9-0.3,1.9-0.4,2.8l0.9,0.1C3.8,95.5,3.9,94.5,4.1,93.6z"/>
<path class="st2" d="M5.3,87l-0.9-0.2c-0.2,0.9-0.4,1.9-0.6,2.8l0.9,0.2C4.9,88.8,5.1,87.9,5.3,87z"/>
<path class="st2" d="M4.7,90.3l-0.9-0.2c-0.2,0.9-0.3,1.9-0.5,2.8l0.9,0.1C4.3,92.1,4.5,91.2,4.7,90.3z"/>
<path class="st2" d="M6.1,83.7l-0.9-0.2c-0.2,0.9-0.5,1.8-0.7,2.8l0.9,0.2C5.7,85.5,5.9,84.6,6.1,83.7z"/>
<path class="st2" d="M8,77.2L7.1,77c-0.3,0.9-0.6,1.8-0.8,2.7l0.9,0.3C7.4,79,7.7,78.1,8,77.2z"/>
<path class="st2" d="M7,80.5l-0.9-0.3C5.8,81.1,5.6,82,5.3,83l0.9,0.2C6.5,82.3,6.7,81.4,7,80.5z"/>
<path class="st2" d="M2.9,113.7l-0.9,0c0,1,0.1,1.9,0.1,2.8l0.9-0.1C3,115.6,2.9,114.7,2.9,113.7z"/>
<path class="st2" d="M3.3,100.3l-0.9-0.1c-0.1,0.9-0.2,1.9-0.2,2.8l0.9,0.1C3.1,102.2,3.2,101.2,3.3,100.3z"/>
<path class="st2" d="M2.8,110.4H1.9c0,1,0,1.9,0,2.9l0.9,0C2.8,112.3,2.8,111.3,2.8,110.4z"/>
<path class="st2" d="M2.9,107l-0.9,0c0,1,0,1.9,0,2.9h0.9C2.8,108.9,2.8,108,2.9,107z"/>
<path class="st2" d="M3,103.6l-0.9-0.1c-0.1,1-0.1,1.9-0.1,2.8l0.9,0C2.9,105.5,2.9,104.6,3,103.6z"/>
<path class="st2" d="M3.6,96.9l-0.9-0.1c-0.1,0.9-0.2,1.9-0.3,2.8l0.9,0.1C3.4,98.8,3.5,97.9,3.6,96.9z"/>
<path class="st2" d="M21.2,50.1l-0.8-0.5c-0.5,0.8-1.1,1.6-1.6,2.4l0.8,0.5C20.1,51.6,20.6,50.8,21.2,50.1z"/>
<path class="st2" d="M23.1,47.3l-0.8-0.5c-0.6,0.8-1.1,1.5-1.6,2.3l0.8,0.5C22,48.8,22.5,48.1,23.1,47.3z"/>
<path class="st2" d="M19.3,52.9l-0.8-0.5c-0.5,0.8-1,1.6-1.5,2.4l0.8,0.5C18.3,54.5,18.8,53.7,19.3,52.9z"/>
<path class="st2" d="M27.2,42l-0.7-0.6c-0.6,0.7-1.2,1.5-1.8,2.2l0.7,0.6C26,43.4,26.6,42.7,27.2,42z"/>
<path class="st2" d="M25.1,44.6L24.4,44c-0.6,0.8-1.1,1.5-1.7,2.3l0.8,0.5C24,46.1,24.5,45.3,25.1,44.6z"/>
<path class="st2" d="M17.6,55.8l-0.8-0.5c-0.5,0.8-0.9,1.6-1.4,2.5l0.8,0.4C16.6,57.4,17.1,56.6,17.6,55.8z"/>
<path class="st2" d="M9.1,74.1l-0.9-0.3c-0.3,0.9-0.6,1.8-0.9,2.7l0.9,0.3C8.4,75.8,8.7,74.9,9.1,74.1z"/>
<path class="st2" d="M9.8,72.1c0.2-0.4,0.3-0.8,0.5-1.2l-0.9-0.3C9.2,71,9,71.4,8.9,71.8c-0.2,0.5-0.4,1-0.5,1.5l0.9,0.3 C9.4,73.1,9.6,72.6,9.8,72.1z"/>
<path class="st2" d="M11.5,67.8l-0.9-0.4c-0.4,0.9-0.7,1.8-1.1,2.6l0.9,0.3C10.8,69.5,11.1,68.6,11.5,67.8z"/>
<path class="st2" d="M12.9,64.7L12,64.3c-0.4,0.9-0.8,1.7-1.2,2.6l0.9,0.4C12.1,66.4,12.5,65.6,12.9,64.7z"/>
<path class="st2" d="M14.4,61.7l-0.8-0.4c-0.4,0.8-0.8,1.7-1.3,2.6l0.8,0.4C13.5,63.4,13.9,62.5,14.4,61.7z"/>
<path class="st2" d="M15.9,58.7l-0.8-0.4c-0.5,0.8-0.9,1.7-1.3,2.5l0.8,0.4C15,60.4,15.5,59.5,15.9,58.7z"/>
<path class="st2" d="M86.3,5.5l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.7l0.2,0.9C84.5,5.9,85.4,5.7,86.3,5.5z"/>
<path class="st2" d="M120.4,3.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L120.4,3.3z"/>
<path class="st2" d="M140.2,7.2c0.9,0.3,1.8,0.5,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.8L140.2,7.2z"/>
<path class="st2" d="M117,3c0.9,0.1,1.9,0.1,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.2L117,3z"/>
<path class="st2" d="M146.9,8.4l-0.3,0.9c0.4,0.2,0.9,0.3,1.3,0.5c0.4,0.2,0.9,0.3,1.3,0.5l0.3-0.9c-0.4-0.2-0.9-0.4-1.3-0.5 C147.8,8.7,147.3,8.6,146.9,8.4z"/>
<path class="st2" d="M149.7,10.5c0.9,0.3,1.7,0.7,2.6,1.1l0.4-0.9c-0.9-0.4-1.8-0.7-2.6-1.1L149.7,10.5z"/>
<path class="st2" d="M143.4,8.2c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L143.4,8.2z"/>
<path class="st2" d="M130.4,4.8c0.9,0.2,1.8,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.9-0.4-2.8-0.6L130.4,4.8z"/>
<path class="st2" d="M136.9,6.3c0.9,0.2,1.8,0.5,2.7,0.7l0.3-0.9c-0.9-0.3-1.8-0.5-2.8-0.8L136.9,6.3z"/>
<path class="st2" d="M133.7,5.5c0.9,0.2,1.8,0.4,2.7,0.7l0.2-0.9c-0.9-0.2-1.8-0.5-2.8-0.7L133.7,5.5z"/>
<path class="st2" d="M123.7,3.7c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L123.7,3.7z"/>
<path class="st2" d="M127.1,4.2c0.9,0.2,1.9,0.3,2.8,0.5l0.2-0.9c-0.9-0.2-1.9-0.3-2.8-0.5L127.1,4.2z"/>
<path class="st2" d="M152.8,11.8c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.6-1.2L152.8,11.8z"/>
<path class="st2" d="M113.6,2.9c0.9,0,1.9,0.1,2.8,0.1l0.1-0.9c-1-0.1-1.9-0.1-2.9-0.1L113.6,2.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

257
images/loader2.svg

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="220px" height="220px" viewBox="0 0 220 220" style="enable-background:new 0 0 220 220;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;}
.st1{fill:#A41620;}
.st2{fill:#8DF3E5;}
</style>
<g id="Ruota_x5F_04">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="360 110 110" dur="3s" repeatCount="indefinite"/>
<circle class="st0" cx="110" cy="110" r="90"/>
<path class="st1" d="M152.8,188.9c21.6-11.8,36.4-30,43.3-53.6c6.4-21.8,4.6-46-6.9-67.5v0l-0.5-0.9 c-11.9-21.8-31.5-36.7-53.6-43.2c-21.8-6.4-46-4.6-67.5,6.9h0L66.8,31C45,42.9,30.1,62.5,23.6,84.6c-6.5,22.1-4.6,46.6,7.3,68.4 l3.4-1.8l3.4-1.8c-10.9-19.9-12.6-42.4-6.7-62.6c5.9-20.2,19.6-38.1,39.5-49l0,0c19.9-10.9,42.4-12.6,62.6-6.7 c20.2,5.9,38.1,19.6,49,39.5l0,0.1c10.9,19.9,12.6,42.4,6.7,62.6c-5.9,20.2-19.6,38.1-39.5,49l1.8,3.4L152.8,188.9L152.8,188.9z"/>
</g>
<g id="Ruota_x5F_03">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="-360 110 110" dur="2s" repeatCount="indefinite"/>
<path class="st2" d="M11.7,109.9c0,27.1,11,51.6,28.7,69.4C58.2,197,82.8,208,109.9,208c27.1,0,51.6-11,69.4-28.7 C197,161.5,208,137,208,109.9c0-27.1-11-51.6-28.7-69.4c-17.8-17.8-42.3-28.7-69.4-28.7v5c25.7,0,49,10.4,65.8,27.3 c16.9,16.9,27.3,40.1,27.3,65.8c0,25.7-10.4,49-27.3,65.8c-16.9,16.9-40.1,27.3-65.8,27.3c-25.7,0-49-10.4-65.8-27.3 c-16.9-16.9-27.3-40.1-27.3-65.8H11.7L11.7,109.9z"/>
<circle class="st0" cx="110" cy="110" r="93"/>
</g>
<g id="Ruota_x5F_02">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="360 110 110" dur="6s" repeatCount="indefinite"/>
<g>
<path class="st1" d="M181.4,38.4L181.4,38.4c0.3,0.3,0.7,0.7,1,1l0.9,0.9l0.9-0.9l0.6-0.6l0.9-0.9l-0.9-0.9l-2-2l-0.9-0.9 l-0.9,0.9l-0.6,0.6l-0.9,0.9l0.9,0.9C180.7,37.8,181.1,38.1,181.4,38.4z"/>
<path class="st1" d="M187.7,45.3L187.7,45.3c0.4,0.4,0.7,0.8,0.9,1.1l0.8,1l1-0.8l0.6-0.5l1-0.8l-0.8-1l-1.9-2.2l-0.8-1l-1,0.8 l-0.6,0.5l-1,0.8l0.8,1C187.1,44.7,187.4,45,187.7,45.3z"/>
<path class="st1" d="M193.7,53.4c0.3,0.4,0.5,0.8,0.8,1.2l0.7,1.1l1.1-0.7l0.7-0.4l1-0.7l-0.7-1l-1.6-2.4l-0.7-1l-1,0.7l-0.7,0.4 l-1.1,0.7l0.7,1C193.2,52.6,193.4,53,193.7,53.4z"/>
<path class="st1" d="M173.9,31.7c0.3,0.2,0.7,0.5,1.1,0.9l1,0.8l0.8-1l0.5-0.6l0.8-1l-1-0.8l-2.2-1.8l-1-0.8l-0.8,1l-0.5,0.6 l-0.8,1l1,0.8C173.3,31.2,173.6,31.5,173.9,31.7z"/>
<path class="st1" d="M202.7,69.9c0.2,0.5,0.4,0.9,0.6,1.3c0.2,0.5,0.4,1,0.5,1.3l0.5,1.2l1.2-0.5l0.7-0.3l1.2-0.5l-0.5-1.2 l-1.1-2.7l-0.5-1.2l-1.2,0.5l-0.7,0.3l-1.2,0.5L202.7,69.9z"/>
<path class="st1" d="M198.3,60.9c0.2,0.3,0.4,0.8,0.7,1.3c0.2,0.4,0.5,0.9,0.7,1.3l0.6,1.1l1.1-0.6l0.7-0.4l1.1-0.6l-0.6-1.1 l-1.4-2.6l-0.6-1.1l-1.1,0.6l-0.7,0.4l-1.1,0.6L198.3,60.9z"/>
<path class="st1" d="M211.4,97l-1.3,0.1l0.1,1.3c0.1,0.5,0.1,1,0.2,1.4c0,0.3,0.1,0.8,0.1,1.4l0.1,1.3l1.3-0.1l0.8-0.1l1.3-0.1 l-0.1-1.3l-0.3-2.9l-0.1-1.3l-1.3,0.1L211.4,97z"/>
<path class="st1" d="M205.6,77.4l0.4,1.2c0.2,0.5,0.3,1,0.4,1.4c0.1,0.4,0.3,0.9,0.4,1.4l0.4,1.2l1.2-0.4l0.8-0.2l1.2-0.4 l-0.4-1.2l-0.9-2.8l-0.4-1.2l-1.2,0.4l-0.8,0.2L205.6,77.4z"/>
<path class="st1" d="M165.7,25.6c0.4,0.3,0.8,0.5,1.2,0.8l1.1,0.7l0.7-1.1l0.4-0.7l0.7-1.1l-1.1-0.7l-2.4-1.6l-1.1-0.7l-0.7,1.1 l-0.4,0.7l-0.7,1.1l1.1,0.7C164.9,25.1,165.3,25.4,165.7,25.6z"/>
<path class="st1" d="M209.6,86.8l-1.3,0.3l0.3,1.2c0.1,0.6,0.2,1.1,0.3,1.4c0.1,0.4,0.2,0.9,0.3,1.4l0.2,1.3l1.3-0.3l0.8-0.2 l1.2-0.3l-0.3-1.2l-0.6-2.8l-0.3-1.2l-1.2,0.3L209.6,86.8z"/>
<path class="st1" d="M71.4,203.1c-0.4-0.2-0.8-0.3-1.3-0.6l-1.2-0.5l-0.5,1.2l-0.3,0.7l-0.5,1.2l1.2,0.5l2.7,1.1l1.2,0.5l0.5-1.2 l0.3-0.7l0.5-1.2l-1.2-0.5C72.3,203.5,71.9,203.4,71.4,203.1z"/>
<path class="st1" d="M212,116.6l-1.3-0.1l-0.1,1.3c0,0.6-0.1,1.1-0.1,1.4c0,0.4-0.1,0.9-0.1,1.4l-0.1,1.3l1.3,0.1l0.8,0.1l1.3,0.1 l0.1-1.3l0.3-2.9l0.1-1.3l-1.3-0.1L212,116.6z"/>
<path class="st1" d="M213,107.1h-0.8h-1.3l0,1.3l0,0.4v0c0,0.2,0,0.4,0,1c0,0.6,0,0.8,0,1v0l0,0.4l0,1.3h1.3h0.8h1.3v-1.3v-2.9 v-1.3H213z"/>
<path class="st1" d="M62.9,199.2c-0.5-0.3-0.9-0.5-1.3-0.7l-1.1-0.6l-0.6,1.1l-0.4,0.7l-0.6,1.1l1.1,0.6l2.6,1.4l1.1,0.6l0.6-1.1 l0.4-0.7l0.6-1.1l-1.1-0.6C63.7,199.6,63.2,199.3,62.9,199.2z"/>
<path class="st1" d="M157.1,20.5c0.5,0.3,0.9,0.5,1.3,0.7l1.1,0.6l0.6-1.1l0.4-0.7l0.6-1.1l-1.1-0.6l-2.6-1.4l-1.1-0.6l-0.6,1.1 l-0.4,0.7l-0.6,1.1l1.1,0.6C156.3,20.1,156.8,20.3,157.1,20.5z"/>
<path class="st1" d="M54.3,194c-0.4-0.3-0.8-0.5-1.2-0.8l-1.1-0.7l-0.7,1.1l-0.4,0.7l-0.7,1.1l1.1,0.7l2.4,1.6l1.1,0.7l0.7-1.1 l0.4-0.7l0.7-1.1l-1.1-0.7C55.1,194.6,54.7,194.3,54.3,194z"/>
<path class="st1" d="M148.6,16.5c0.4,0.2,0.8,0.3,1.3,0.6l1.2,0.5l0.5-1.2l0.3-0.7l0.5-1.2l-1.2-0.5l-2.7-1.1l-1.2-0.5l-0.5,1.2 l-0.3,0.7l-0.5,1.2l1.2,0.5C147.7,16.1,148.1,16.3,148.6,16.5z"/>
<path class="st1" d="M181.4,181.5c-18.3,18.3-43.6,29.6-71.5,29.6c-11,0-21.6-1.8-31.5-5l-1.4,2.8c10.4,3.5,21.4,5.3,33,5.3 c28.8,0,54.8-11.7,73.7-30.5c15-15,25.4-34.5,29.1-56.3l-3.1-0.2C205.9,148.2,195.8,167,181.4,181.5z"/>
<path class="st1" d="M8.8,110c0-27.9,11.3-53.2,29.6-71.5C56.7,20.2,82,8.9,109.9,8.9c11,0,21.6,1.8,31.5,5l1.4-2.8 c-10.4-3.5-21.4-5.3-33-5.3c-28.8,0-54.8,11.7-73.7,30.5C17.4,55.2,5.7,81.2,5.7,110c0,28.8,11.7,54.8,30.5,73.7 c3.6,3.6,7.5,6.9,11.6,10l1.4-2.8c-3.8-2.9-7.4-6-10.8-9.4C20.1,163.2,8.8,137.9,8.8,110z"/>
</g>
</g>
<g id="Ruota_x5F_01">
<animateTransform attributeName="transform" begin="0" attributeType="XML" type="rotate" from="0 110 110" to="-360 110 110" dur="6s"/>
<g>
<path class="st2" d="M14.7,159l-0.8,0.4c0.4,0.8,0.9,1.7,1.3,2.5l0.8-0.4C15.6,160.6,15.1,159.8,14.7,159z"/>
<path class="st2" d="M8.2,143.5l-0.9,0.3c0.3,0.9,0.6,1.8,0.9,2.7l0.9-0.3C8.8,145.3,8.5,144.4,8.2,143.5z"/>
<path class="st2" d="M6.3,137l-0.9,0.2c0.2,0.9,0.5,1.8,0.8,2.7l0.9-0.3C6.8,138.8,6.5,137.9,6.3,137z"/>
<path class="st2" d="M9.3,146.6L8.4,147c0.3,0.9,0.7,1.8,1,2.7l0.9-0.3C10,148.4,9.6,147.5,9.3,146.6z"/>
<path class="st2" d="M10.5,149.8l-0.9,0.3c0.4,0.9,0.7,1.8,1.1,2.6l0.9-0.4C11.2,151.5,10.9,150.7,10.5,149.8z"/>
<path class="st2" d="M13.2,156l-0.8,0.4c0.4,0.9,0.8,1.7,1.3,2.6l0.8-0.4C14,157.7,13.6,156.8,13.2,156z"/>
<path class="st2" d="M5.5,133.7l-0.9,0.2c0.2,0.9,0.4,1.9,0.7,2.8l0.9-0.2C5.9,135.6,5.7,134.7,5.5,133.7z"/>
<path class="st2" d="M12.3,154.1c-0.2-0.4-0.3-0.8-0.5-1.2l-0.9,0.4c0.2,0.4,0.3,0.8,0.5,1.2c0.2,0.5,0.4,0.9,0.6,1.4l0.8-0.4 C12.8,155,12.5,154.5,12.3,154.1z"/>
<path class="st2" d="M7.2,140.3l-0.9,0.3c0.3,0.9,0.6,1.8,0.8,2.7L8,143C7.7,142.1,7.5,141.2,7.2,140.3z"/>
<path class="st2" d="M217,103.1l0.9-0.1c-0.1-0.9-0.1-1.9-0.2-2.8l-0.9,0.1C216.8,101.2,216.9,102.2,217,103.1z"/>
<path class="st2" d="M4.8,130.5l-0.9,0.2c0.2,0.9,0.4,1.9,0.6,2.8l0.9-0.2C5.2,132.3,5,131.4,4.8,130.5z"/>
<path class="st2" d="M217.1,106.5l0.9,0c0-1-0.1-1.9-0.1-2.8l-0.9,0.1C217,104.6,217.1,105.5,217.1,106.5z"/>
<path class="st2" d="M217.2,109.8h0.9c0-1,0-1.9,0-2.9l-0.9,0C217.2,108,217.2,108.9,217.2,109.8z"/>
<path class="st2" d="M4.2,127.1l-0.9,0.1c0.2,0.9,0.3,1.9,0.5,2.8l0.9-0.2C4.5,129,4.4,128.1,4.2,127.1z"/>
<path class="st2" d="M3.7,123.8l-0.9,0.1c0.1,0.9,0.3,1.9,0.4,2.8l0.9-0.1C4,125.7,3.8,124.7,3.7,123.8z"/>
<path class="st2" d="M3.3,120.5l-0.9,0.1c0.1,0.9,0.2,1.9,0.3,2.8l0.9-0.1C3.5,122.3,3.4,121.4,3.3,120.5z"/>
<path class="st2" d="M3.1,117.1l-0.9,0.1c0.1,0.9,0.1,1.9,0.2,2.8l0.9-0.1C3.2,119,3.1,118,3.1,117.1z"/>
<path class="st2" d="M39.4,190.6l-0.6,0.7c0.7,0.6,1.4,1.2,2.2,1.8l0.6-0.7C40.8,191.9,40.1,191.2,39.4,190.6z"/>
<path class="st2" d="M36.9,188.4l-0.6,0.7c0.7,0.6,1.4,1.3,2.1,1.9l0.6-0.7C38.3,189.6,37.6,189,36.9,188.4z"/>
<path class="st2" d="M34.5,186l-0.7,0.7c0.7,0.7,1.4,1.3,2,2l0.6-0.7C35.8,187.3,35.1,186.7,34.5,186z"/>
<path class="st2" d="M44.6,194.9l-0.6,0.7c0.8,0.6,1.5,1.1,2.3,1.7l0.5-0.8C46.1,196,45.3,195.5,44.6,194.9z"/>
<path class="st2" d="M52.9,200.7l-0.5,0.8c0.8,0.5,1.6,1,2.4,1.5l0.5-0.8C54.4,201.7,53.6,201.2,52.9,200.7z"/>
<path class="st2" d="M32.1,183.6l-0.7,0.6c0.7,0.7,1.3,1.4,2,2l0.7-0.7C33.4,185,32.8,184.3,32.1,183.6z"/>
<path class="st2" d="M47.3,196.9l-0.5,0.8c0.8,0.6,1.5,1.1,2.3,1.6l0.5-0.8C48.8,198,48,197.5,47.3,196.9z"/>
<path class="st2" d="M50,198.8l-0.5,0.8c0.8,0.5,1.6,1.1,2.4,1.6l0.5-0.8C51.6,199.9,50.8,199.4,50,198.8z"/>
<path class="st2" d="M25.5,176l-0.7,0.6c0.6,0.7,1.2,1.5,1.8,2.2l0.7-0.6C26.7,177.4,26.1,176.7,25.5,176z"/>
<path class="st2" d="M19.7,167.7l-0.8,0.5c0.5,0.8,1,1.6,1.6,2.4l0.8-0.5C20.7,169.3,20.2,168.5,19.7,167.7z"/>
<path class="st2" d="M18,164.9l-0.8,0.5c0.5,0.8,1,1.6,1.5,2.4l0.8-0.5C18.9,166.5,18.4,165.7,18,164.9z"/>
<path class="st2" d="M21.6,170.5l-0.8,0.5c0.5,0.8,1.1,1.6,1.6,2.3l0.8-0.5C22.6,172.1,22.1,171.3,21.6,170.5z"/>
<path class="st2" d="M23.5,173.3l-0.8,0.5c0.6,0.8,1.1,1.5,1.7,2.3l0.7-0.6C24.6,174.8,24.1,174,23.5,173.3z"/>
<path class="st2" d="M27.7,178.6l-0.7,0.6c0.6,0.7,1.2,1.5,1.9,2.2l0.7-0.6C28.9,180,28.3,179.3,27.7,178.6z"/>
<path class="st2" d="M16.3,161.9l-0.8,0.4c0.5,0.8,0.9,1.7,1.4,2.5l0.8-0.5C17.2,163.6,16.7,162.8,16.3,161.9z"/>
<path class="st2" d="M29.8,181.1l-0.7,0.6c0.6,0.7,1.3,1.4,1.9,2.1l0.7-0.6C31.1,182.5,30.5,181.8,29.8,181.1z"/>
<path class="st2" d="M188,36.5l0.7-0.6c-0.7-0.7-1.3-1.4-2-2.1l-0.7,0.7C186.7,35.1,187.4,35.8,188,36.5z"/>
<path class="st2" d="M185.6,34.1l0.7-0.7c-0.7-0.7-1.4-1.3-2-2l-0.6,0.7C184.3,32.8,185,33.4,185.6,34.1z"/>
<path class="st2" d="M190.3,39l0.7-0.6c-0.6-0.7-1.3-1.4-1.9-2.1l-0.7,0.6C189,37.6,189.6,38.3,190.3,39z"/>
<path class="st2" d="M55.3,203.2c0.8,0.5,1.6,0.9,2.5,1.4l0.4-0.8c-0.8-0.5-1.6-0.9-2.5-1.4L55.3,203.2z"/>
<path class="st2" d="M183.2,31.7l0.6-0.7c-0.7-0.6-1.4-1.3-2.1-1.9l-0.6,0.7C181.8,30.5,182.5,31.1,183.2,31.7z"/>
<path class="st2" d="M194.6,44.2l0.7-0.6c-0.6-0.8-1.2-1.5-1.8-2.2l-0.7,0.6C193.4,42.7,194,43.4,194.6,44.2z"/>
<path class="st2" d="M196.6,46.9l0.8-0.5c-0.6-0.8-1.1-1.5-1.7-2.3l-0.7,0.6C195.5,45.3,196,46.1,196.6,46.9z"/>
<path class="st2" d="M180.7,29.5l0.6-0.7c-0.7-0.6-1.4-1.2-2.2-1.9l-0.6,0.7C179.3,28.2,180,28.8,180.7,29.5z"/>
<path class="st2" d="M192.5,41.5l0.7-0.6c-0.6-0.7-1.2-1.5-1.9-2.2l-0.7,0.6C191.2,40.1,191.9,40.8,192.5,41.5z"/>
<path class="st2" d="M170.1,21.2l0.5-0.8c-0.8-0.5-1.6-1.1-2.4-1.6l-0.5,0.8C168.5,20.2,169.3,20.7,170.1,21.2z"/>
<path class="st2" d="M164.8,16.8c-0.8-0.5-1.6-1-2.5-1.4l-0.4,0.8c0.8,0.5,1.6,0.9,2.5,1.4L164.8,16.8z"/>
<path class="st2" d="M161.9,15.2c-0.8-0.5-1.7-0.9-2.5-1.3l-0.4,0.8c0.8,0.4,1.7,0.9,2.5,1.3L161.9,15.2z"/>
<path class="st2" d="M167.2,19.4l0.5-0.8c-0.8-0.5-1.6-1-2.4-1.5l-0.5,0.8C165.6,18.4,166.5,18.9,167.2,19.4z"/>
<path class="st2" d="M198.5,49.6l0.8-0.5c-0.5-0.8-1.1-1.6-1.6-2.3l-0.8,0.5C197.5,48.1,198,48.8,198.5,49.6z"/>
<path class="st2" d="M175.5,25.2l0.6-0.7c-0.8-0.6-1.5-1.2-2.3-1.7l-0.5,0.8C174,24,174.8,24.6,175.5,25.2z"/>
<path class="st2" d="M172.8,23.2l0.5-0.8c-0.8-0.6-1.5-1.1-2.3-1.6l-0.5,0.8C171.3,22.1,172.1,22.6,172.8,23.2z"/>
<path class="st2" d="M178.2,27.3l0.6-0.7c-0.7-0.6-1.5-1.2-2.2-1.8l-0.6,0.7C176.7,26.1,177.4,26.7,178.2,27.3z"/>
<path class="st2" d="M209.6,70.4l0.9-0.3c-0.4-0.9-0.7-1.8-1.1-2.6l-0.9,0.4C208.9,68.7,209.2,69.5,209.6,70.4z"/>
<path class="st2" d="M214.5,86.5l0.9-0.2c-0.2-0.9-0.4-1.9-0.7-2.8l-0.9,0.2C214.1,84.6,214.3,85.5,214.5,86.5z"/>
<path class="st2" d="M213.8,83.2l0.9-0.2c-0.2-0.9-0.5-1.8-0.7-2.8l-0.9,0.3C213.3,81.4,213.5,82.3,213.8,83.2z"/>
<path class="st2" d="M212.9,79.9l0.9-0.3c-0.3-0.9-0.5-1.8-0.8-2.7l-0.9,0.3C212.3,78.1,212.6,79,212.9,79.9z"/>
<path class="st2" d="M215.2,89.8l0.9-0.2c-0.2-0.9-0.4-1.9-0.6-2.8l-0.9,0.2C214.9,87.9,215.1,88.8,215.2,89.8z"/>
<path class="st2" d="M211.9,76.7l0.9-0.3c-0.3-0.9-0.6-1.8-0.9-2.7l-0.9,0.3C211.3,74.9,211.6,75.8,211.9,76.7z"/>
<path class="st2" d="M216.3,96.4l0.9-0.1c-0.1-0.9-0.3-1.9-0.4-2.8l-0.9,0.1C216.1,94.5,216.2,95.5,216.3,96.4z"/>
<path class="st2" d="M215.8,93.1l0.9-0.1c-0.2-0.9-0.3-1.9-0.5-2.8l-0.9,0.2C215.5,91.2,215.7,92.1,215.8,93.1z"/>
<path class="st2" d="M202.1,55.3l0.8-0.5c-0.5-0.8-1-1.6-1.5-2.4l-0.8,0.5C201.2,53.7,201.7,54.5,202.1,55.3z"/>
<path class="st2" d="M203.8,58.2l0.8-0.4c-0.5-0.8-0.9-1.7-1.4-2.5l-0.8,0.5C202.9,56.6,203.4,57.4,203.8,58.2z"/>
<path class="st2" d="M200.4,52.4l0.8-0.5c-0.5-0.8-1-1.6-1.6-2.4l-0.8,0.5C199.4,50.8,199.9,51.6,200.4,52.4z"/>
<path class="st2" d="M205.4,61.2l0.8-0.4c-0.4-0.8-0.9-1.7-1.3-2.5l-0.8,0.4C204.5,59.5,205,60.4,205.4,61.2z"/>
<path class="st2" d="M206.9,64.2l0.8-0.4c-0.4-0.9-0.8-1.7-1.3-2.6l-0.8,0.4C206.1,62.5,206.5,63.4,206.9,64.2z"/>
<path class="st2" d="M216.7,99.7l0.9-0.1c-0.1-0.9-0.2-1.9-0.3-2.8l-0.9,0.1C216.5,97.9,216.6,98.8,216.7,99.7z"/>
<path class="st2" d="M207.7,65.9c0.2,0.5,0.4,0.9,0.6,1.4l0.9-0.4c-0.2-0.5-0.4-0.9-0.6-1.4c-0.2-0.4-0.4-0.8-0.6-1.2l-0.8,0.4 C207.3,65.1,207.5,65.5,207.7,65.9z"/>
<path class="st2" d="M210.8,73.5l0.9-0.3c-0.3-0.9-0.7-1.8-1-2.7l-0.9,0.3C210.1,71.8,210.4,72.7,210.8,73.5z"/>
<path class="st2" d="M194.8,175.5l0.7,0.6c0.6-0.8,1.1-1.5,1.7-2.3l-0.8-0.5C195.9,174,195.4,174.8,194.8,175.5z"/>
<path class="st2" d="M190.5,180.7l0.7,0.6c0.6-0.7,1.2-1.4,1.9-2.2l-0.7-0.6C191.8,179.3,191.1,180,190.5,180.7z"/>
<path class="st2" d="M192.7,178.2l0.7,0.6c0.6-0.7,1.2-1.5,1.8-2.2l-0.7-0.6C193.9,176.7,193.3,177.5,192.7,178.2z"/>
<path class="st2" d="M185.9,185.6l0.7,0.7c0.7-0.7,1.3-1.4,2-2l-0.7-0.6C187.2,184.3,186.6,185,185.9,185.6z"/>
<path class="st2" d="M202.3,164.4l0.8,0.5c0.5-0.8,0.9-1.6,1.4-2.5l-0.8-0.4C203.3,162.8,202.8,163.6,202.3,164.4z"/>
<path class="st2" d="M188.3,183.2l0.7,0.6c0.6-0.7,1.3-1.4,1.9-2.1l-0.7-0.6C189.5,181.8,188.9,182.5,188.3,183.2z"/>
<path class="st2" d="M200.6,167.3l0.8,0.5c0.5-0.8,1-1.6,1.5-2.4l-0.8-0.5C201.6,165.7,201.1,166.5,200.6,167.3z"/>
<path class="st2" d="M196.8,172.8l0.8,0.5c0.6-0.8,1.1-1.5,1.6-2.3l-0.8-0.5C197.9,171.3,197.4,172.1,196.8,172.8z"/>
<path class="st2" d="M198.7,170.1l0.8,0.5c0.5-0.8,1.1-1.6,1.6-2.4l-0.8-0.5C199.8,168.5,199.3,169.3,198.7,170.1z"/>
<path class="st2" d="M158.9,13.6c-0.8-0.4-1.7-0.8-2.6-1.3l-0.4,0.8c0.9,0.4,1.7,0.8,2.5,1.2L158.9,13.6z"/>
<path class="st2" d="M170.4,198.5l0.5,0.8c0.8-0.5,1.6-1.1,2.3-1.6l-0.5-0.8C172,197.4,171.2,198,170.4,198.5z"/>
<path class="st2" d="M173.2,196.6l0.5,0.8c0.8-0.6,1.5-1.1,2.3-1.7l-0.6-0.7C174.7,195.5,173.9,196,173.2,196.6z"/>
<path class="st2" d="M167.6,200.4l0.5,0.8c0.8-0.5,1.6-1,2.4-1.6l-0.5-0.8C169.2,199.3,168.4,199.9,167.6,200.4z"/>
<path class="st2" d="M175.8,194.6l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C177.3,193.4,176.6,194,175.8,194.6z"/>
<path class="st2" d="M181,190.3l0.6,0.7c0.7-0.6,1.4-1.3,2.1-1.9l-0.6-0.7C182.4,189,181.7,189.6,181,190.3z"/>
<path class="st2" d="M183.5,188l0.6,0.7c0.7-0.7,1.4-1.3,2-2l-0.7-0.7C184.9,186.7,184.2,187.3,183.5,188z"/>
<path class="st2" d="M178.5,192.4l0.6,0.7c0.7-0.6,1.5-1.2,2.2-1.8l-0.6-0.7C179.9,191.2,179.2,191.8,178.5,192.4z"/>
<path class="st2" d="M205.6,158.5l0.8,0.4c0.4-0.8,0.8-1.7,1.3-2.6l-0.8-0.4C206.4,156.8,206,157.7,205.6,158.5z"/>
<path class="st2" d="M215.9,126.6l0.9,0.1c0.1-0.9,0.3-1.9,0.4-2.8l-0.9-0.1C216.2,124.7,216,125.7,215.9,126.6z"/>
<path class="st2" d="M215.3,129.9l0.9,0.2c0.2-0.9,0.3-1.9,0.5-2.8l-0.9-0.1C215.6,128.1,215.5,129,215.3,129.9z"/>
<path class="st2" d="M214.6,133.2l0.9,0.2c0.2-0.9,0.4-1.9,0.6-2.8l-0.9-0.2C215,131.4,214.8,132.3,214.6,133.2z"/>
<path class="st2" d="M213.8,136.5l0.9,0.2c0.2-0.9,0.5-1.8,0.7-2.8l-0.9-0.2C214.3,134.7,214.1,135.6,213.8,136.5z"/>
<path class="st2" d="M216.3,123.3l0.9,0.1c0.1-0.9,0.2-1.9,0.3-2.8l-0.9-0.1C216.6,121.4,216.5,122.3,216.3,123.3z"/>
<path class="st2" d="M217.2,110.4c0,0.9,0,1.9,0,2.8l0.9,0c0-1,0-1.9,0-2.9H217.2z"/>
<path class="st2" d="M204,161.5l0.8,0.4c0.5-0.8,0.9-1.7,1.3-2.5l-0.8-0.4C204.9,159.8,204.4,160.6,204,161.5z"/>
<path class="st2" d="M217,116.6l0.9,0.1c0.1-0.9,0.1-1.9,0.1-2.8l-0.9,0C217.1,114.7,217,115.6,217,116.6z"/>
<path class="st2" d="M216.7,119.9l0.9,0.1c0.1-0.9,0.2-1.9,0.2-2.8l-0.9-0.1C216.9,118,216.8,119,216.7,119.9z"/>
<path class="st2" d="M207,155.5l0.8,0.4c0.4-0.9,0.8-1.7,1.2-2.6l-0.9-0.4C207.8,153.8,207.4,154.6,207,155.5z"/>
<path class="st2" d="M164.7,202.1l0.5,0.8c0.8-0.5,1.6-1,2.4-1.5l-0.5-0.8C166.3,201.2,165.5,201.6,164.7,202.1z"/>
<path class="st2" d="M208.4,152.4l0.9,0.4c0.4-0.9,0.7-1.7,1.1-2.6l-0.9-0.3C209.1,150.7,208.8,151.5,208.4,152.4z"/>
<path class="st2" d="M210.9,146.1l0.9,0.3c0.3-0.9,0.6-1.8,0.9-2.7l-0.9-0.3C211.5,144.4,211.2,145.2,210.9,146.1z"/>
<path class="st2" d="M212,143l0.9,0.3c0.3-0.9,0.6-1.8,0.8-2.7l-0.9-0.3C212.5,141.2,212.3,142.1,212,143z"/>
<path class="st2" d="M213,139.7l0.9,0.3c0.3-0.9,0.5-1.8,0.8-2.7l-0.9-0.2C213.5,137.9,213.2,138.8,213,139.7z"/>
<path class="st2" d="M210.2,147.9c-0.2,0.5-0.4,0.9-0.5,1.4l0.9,0.3c0.2-0.5,0.4-0.9,0.6-1.4c0.2-0.4,0.3-0.8,0.5-1.3l-0.9-0.3 C210.5,147.1,210.4,147.5,210.2,147.9z"/>
<path class="st2" d="M103.5,217.9c0.9,0.1,1.9,0.1,2.8,0.1l0-0.9c-0.9,0-1.9-0.1-2.8-0.1L103.5,217.9z"/>
<path class="st2" d="M90,216.2c0.9,0.2,1.9,0.3,2.8,0.5l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.5L90,216.2z"/>
<path class="st2" d="M110.3,217.2v0.9c1,0,1.9,0,2.8,0l0-0.9C112.2,217.2,111.2,217.2,110.3,217.2z"/>
<path class="st2" d="M96.7,217.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L96.7,217.3z"/>
<path class="st2" d="M86.7,215.6c0.9,0.2,1.9,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.8-0.4-2.8-0.6L86.7,215.6z"/>
<path class="st2" d="M93.4,216.8c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L93.4,216.8z"/>
<path class="st2" d="M106.9,218.1c1,0,1.9,0,2.8,0v-0.9c-0.9,0-1.9,0-2.8,0L106.9,218.1z"/>
<path class="st2" d="M58.2,204.9c0.8,0.5,1.7,0.9,2.5,1.3l0.4-0.8c-0.8-0.4-1.7-0.9-2.5-1.3L58.2,204.9z"/>
<path class="st2" d="M161.8,203.8l0.4,0.8c0.8-0.5,1.7-0.9,2.5-1.4l-0.5-0.8C163.5,202.9,162.6,203.3,161.8,203.8z"/>
<path class="st2" d="M83.4,214.8c0.9,0.2,1.8,0.5,2.8,0.7l0.2-0.9c-0.9-0.2-1.8-0.4-2.7-0.7L83.4,214.8z"/>
<path class="st2" d="M64.3,207.9c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.9c-0.9-0.4-1.7-0.8-2.6-1.2L64.3,207.9z"/>
<path class="st2" d="M61.2,206.5c0.8,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.5-1.2L61.2,206.5z"/>
<path class="st2" d="M67.4,209.3c0.9,0.4,1.7,0.7,2.6,1.1l0.3-0.9c-0.9-0.3-1.7-0.7-2.6-1.1L67.4,209.3z"/>
<path class="st2" d="M70.8,209.7l-0.3,0.9c0.4,0.2,0.8,0.3,1.3,0.5c0.5,0.2,0.9,0.3,1.4,0.5l0.3-0.9c-0.5-0.2-0.9-0.3-1.4-0.5 C71.7,210.1,71.3,209.9,70.8,209.7z"/>
<path class="st2" d="M76.9,212.9c0.9,0.3,1.8,0.6,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.5-2.7-0.8L76.9,212.9z"/>
<path class="st2" d="M73.7,211.8c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L73.7,211.8z"/>
<path class="st2" d="M80.1,213.9c0.9,0.3,1.8,0.5,2.7,0.8l0.2-0.9c-0.9-0.2-1.8-0.5-2.7-0.7L80.1,213.9z"/>
<path class="st2" d="M100.1,217.7c0.9,0.1,1.9,0.2,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.1-2.8-0.2L100.1,217.7z"/>
<path class="st2" d="M149.7,209.5l0.3,0.9c0.9-0.4,1.8-0.7,2.6-1.1l-0.4-0.9C151.4,208.8,150.5,209.2,149.7,209.5z"/>
<path class="st2" d="M113.6,217.1l0,0.9c0.9,0,1.9-0.1,2.8-0.1l-0.1-0.9C115.5,217,114.6,217.1,113.6,217.1z"/>
<path class="st2" d="M143.3,211.8l0.3,0.9c0.9-0.3,1.8-0.6,2.7-0.9l-0.3-0.9C145.1,211.2,144.2,211.5,143.3,211.8z"/>
<path class="st2" d="M140.1,212.8l0.3,0.9c0.9-0.3,1.8-0.5,2.7-0.8l-0.3-0.9C141.9,212.3,141,212.6,140.1,212.8z"/>
<path class="st2" d="M158.8,205.4l0.4,0.8c0.8-0.4,1.7-0.9,2.5-1.3l-0.4-0.8C160.5,204.5,159.7,204.9,158.8,205.4z"/>
<path class="st2" d="M154.1,207.7c-0.4,0.2-0.9,0.4-1.3,0.6l0.4,0.9c0.4-0.2,0.9-0.4,1.3-0.6c0.4-0.2,0.8-0.4,1.3-0.6l-0.4-0.8 C154.9,207.3,154.5,207.5,154.1,207.7z"/>
<path class="st2" d="M155.8,206.9l0.4,0.8c0.9-0.4,1.7-0.8,2.6-1.2l-0.4-0.8C157.5,206,156.7,206.5,155.8,206.9z"/>
<path class="st2" d="M146.5,210.7l0.3,0.9c0.9-0.3,1.8-0.7,2.7-1l-0.3-0.9C148.3,210.1,147.4,210.4,146.5,210.7z"/>
<path class="st2" d="M123.7,216.3l0.1,0.9c0.9-0.1,1.9-0.3,2.8-0.4l-0.1-0.9C125.6,216,124.6,216.2,123.7,216.3z"/>
<path class="st2" d="M120.3,216.7l0.1,0.9c0.9-0.1,1.9-0.2,2.8-0.3l-0.1-0.9C122.2,216.5,121.3,216.6,120.3,216.7z"/>
<path class="st2" d="M117,217l0.1,0.9c0.9-0.1,1.9-0.1,2.8-0.2l-0.1-0.9C118.9,216.8,117.9,216.9,117,217z"/>
<path class="st2" d="M133.6,214.5l0.2,0.9c0.9-0.2,1.8-0.4,2.8-0.7l-0.2-0.9C135.4,214.1,134.5,214.3,133.6,214.5z"/>
<path class="st2" d="M136.9,213.7l0.2,0.9c0.9-0.2,1.8-0.5,2.7-0.8l-0.3-0.9C138.7,213.3,137.8,213.5,136.9,213.7z"/>
<path class="st2" d="M130.3,215.2l0.2,0.9c0.9-0.2,1.9-0.4,2.8-0.6l-0.2-0.9C132.2,214.8,131.3,215,130.3,215.2z"/>
<path class="st2" d="M127,215.8l0.1,0.9c0.9-0.2,1.9-0.3,2.8-0.5l-0.2-0.9C128.9,215.5,127.9,215.7,127,215.8z"/>
<path class="st2" d="M41.9,192.8l-0.6,0.7c0.7,0.6,1.5,1.2,2.2,1.8l0.6-0.7C43.4,194,42.7,193.4,41.9,192.8z"/>
<path class="st2" d="M110.3,2.8c0.9,0,1.9,0,2.8,0l0-0.9c-1,0-1.9,0-2.9,0V2.8z"/>
<path class="st2" d="M55.2,17.9l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.5l0.5,0.8C53.6,18.9,54.4,18.4,55.2,17.9z"/>
<path class="st2" d="M49.5,21.6L49,20.8c-0.8,0.5-1.6,1.1-2.3,1.6l0.5,0.8C47.9,22.6,48.7,22.1,49.5,21.6z"/>
<path class="st2" d="M52.3,19.7l-0.5-0.8c-0.8,0.5-1.6,1-2.4,1.6l0.5,0.8C50.7,20.7,51.5,20.2,52.3,19.7z"/>
<path class="st2" d="M65.9,12.3c0.4-0.2,0.8-0.4,1.2-0.5l-0.4-0.9c-0.4,0.2-0.8,0.4-1.3,0.5c-0.5,0.2-0.9,0.4-1.3,0.6l0.4,0.8 C65,12.7,65.5,12.5,65.9,12.3z"/>
<path class="st2" d="M61.1,14.7l-0.4-0.8c-0.8,0.4-1.7,0.9-2.5,1.3l0.4,0.8C59.4,15.5,60.2,15.1,61.1,14.7z"/>
<path class="st2" d="M64.1,13.2l-0.4-0.8c-0.9,0.4-1.7,0.8-2.6,1.3l0.4,0.8C62.4,14,63.2,13.6,64.1,13.2z"/>
<path class="st2" d="M38.9,29.8l-0.6-0.7c-0.7,0.6-1.4,1.3-2.1,1.9l0.6,0.7C37.5,31.1,38.2,30.5,38.9,29.8z"/>
<path class="st2" d="M46.7,23.5l-0.5-0.8c-0.8,0.6-1.5,1.1-2.3,1.7l0.6,0.7C45.2,24.6,46,24.1,46.7,23.5z"/>
<path class="st2" d="M34,34.5l-0.7-0.7c-0.7,0.7-1.3,1.4-2,2.1l0.7,0.6C32.6,35.8,33.3,35.1,34,34.5z"/>
<path class="st2" d="M36.4,32.1l-0.6-0.7c-0.7,0.7-1.4,1.3-2.1,2l0.7,0.7C35,33.4,35.7,32.8,36.4,32.1z"/>
<path class="st2" d="M41.4,27.6l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.9l0.6,0.7C40,28.9,40.7,28.2,41.4,27.6z"/>
<path class="st2" d="M44,25.5l-0.6-0.7c-0.7,0.6-1.5,1.2-2.2,1.8l0.6,0.7C42.6,26.7,43.3,26.1,44,25.5z"/>
<path class="st2" d="M106.9,2.9c0.9,0,1.9,0,2.8,0V1.9c-1,0-1.9,0-2.9,0L106.9,2.9z"/>
<path class="st2" d="M103,3l-0.1-0.9c-1,0.1-1.9,0.1-2.8,0.2l0.1,0.9C101.1,3.2,102.1,3.1,103,3z"/>
<path class="st2" d="M99.6,3.3l-0.1-0.9c-0.9,0.1-1.9,0.2-2.8,0.3l0.1,0.9C97.8,3.5,98.7,3.4,99.6,3.3z"/>
<path class="st2" d="M96.3,3.7l-0.1-0.9c-0.9,0.1-1.9,0.3-2.8,0.4l0.1,0.9C94.4,4,95.3,3.8,96.3,3.7z"/>
<path class="st2" d="M106.4,2.9l0-0.9c-1,0-1.9,0.1-2.9,0.1l0.1,0.9C104.5,3,105.4,2.9,106.4,2.9z"/>
<path class="st2" d="M31.6,36.9L31,36.2c-0.6,0.7-1.3,1.4-1.9,2.1l0.7,0.6C30.4,38.3,31,37.6,31.6,36.9z"/>
<path class="st2" d="M92.9,4.2l-0.1-0.9c-0.9,0.2-1.9,0.3-2.8,0.5l0.2,0.9C91.1,4.5,92,4.3,92.9,4.2z"/>
<path class="st2" d="M83.1,6.3l-0.2-0.9c-0.9,0.2-1.8,0.5-2.8,0.8L80.3,7C81.2,6.8,82.1,6.5,83.1,6.3z"/>
<path class="st2" d="M73.4,9.3l-0.3-0.9c-0.9,0.3-1.8,0.7-2.7,1l0.3,0.9C71.6,9.9,72.5,9.6,73.4,9.3z"/>
<path class="st2" d="M76.6,8.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.9l0.3,0.9C74.8,8.8,75.7,8.5,76.6,8.2z"/>
<path class="st2" d="M79.8,7.2l-0.3-0.9c-0.9,0.3-1.8,0.6-2.7,0.8L77.1,8C78,7.7,78.9,7.4,79.8,7.2z"/>
<path class="st2" d="M70.3,10.5l-0.3-0.9c-0.9,0.4-1.8,0.7-2.6,1.1l0.4,0.9C68.5,11.2,69.4,10.8,70.3,10.5z"/>
<path class="st2" d="M89.6,4.8l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.6l0.2,0.9C87.8,5.2,88.7,5,89.6,4.8z"/>
<path class="st2" d="M58.1,16.3l-0.4-0.8c-0.8,0.5-1.7,0.9-2.5,1.4l0.5,0.8C56.5,17.2,57.3,16.7,58.1,16.3z"/>
<path class="st2" d="M29.4,39.4l-0.7-0.6c-0.6,0.7-1.2,1.4-1.9,2.2l0.7,0.6C28.1,40.8,28.8,40.1,29.4,39.4z"/>
<path class="st2" d="M4.1,93.6l-0.9-0.1c-0.1,0.9-0.3,1.9-0.4,2.8l0.9,0.1C3.8,95.5,3.9,94.5,4.1,93.6z"/>
<path class="st2" d="M5.3,87l-0.9-0.2c-0.2,0.9-0.4,1.9-0.6,2.8l0.9,0.2C4.9,88.8,5.1,87.9,5.3,87z"/>
<path class="st2" d="M4.7,90.3l-0.9-0.2c-0.2,0.9-0.3,1.9-0.5,2.8l0.9,0.1C4.3,92.1,4.5,91.2,4.7,90.3z"/>
<path class="st2" d="M6.1,83.7l-0.9-0.2c-0.2,0.9-0.5,1.8-0.7,2.8l0.9,0.2C5.7,85.5,5.9,84.6,6.1,83.7z"/>
<path class="st2" d="M8,77.2L7.1,77c-0.3,0.9-0.6,1.8-0.8,2.7l0.9,0.3C7.4,79,7.7,78.1,8,77.2z"/>
<path class="st2" d="M7,80.5l-0.9-0.3C5.8,81.1,5.6,82,5.3,83l0.9,0.2C6.5,82.3,6.7,81.4,7,80.5z"/>
<path class="st2" d="M2.9,113.7l-0.9,0c0,1,0.1,1.9,0.1,2.8l0.9-0.1C3,115.6,2.9,114.7,2.9,113.7z"/>
<path class="st2" d="M3.3,100.3l-0.9-0.1c-0.1,0.9-0.2,1.9-0.2,2.8l0.9,0.1C3.1,102.2,3.2,101.2,3.3,100.3z"/>
<path class="st2" d="M2.8,110.4H1.9c0,1,0,1.9,0,2.9l0.9,0C2.8,112.3,2.8,111.3,2.8,110.4z"/>
<path class="st2" d="M2.9,107l-0.9,0c0,1,0,1.9,0,2.9h0.9C2.8,108.9,2.8,108,2.9,107z"/>
<path class="st2" d="M3,103.6l-0.9-0.1c-0.1,1-0.1,1.9-0.1,2.8l0.9,0C2.9,105.5,2.9,104.6,3,103.6z"/>
<path class="st2" d="M3.6,96.9l-0.9-0.1c-0.1,0.9-0.2,1.9-0.3,2.8l0.9,0.1C3.4,98.8,3.5,97.9,3.6,96.9z"/>
<path class="st2" d="M21.2,50.1l-0.8-0.5c-0.5,0.8-1.1,1.6-1.6,2.4l0.8,0.5C20.1,51.6,20.6,50.8,21.2,50.1z"/>
<path class="st2" d="M23.1,47.3l-0.8-0.5c-0.6,0.8-1.1,1.5-1.6,2.3l0.8,0.5C22,48.8,22.5,48.1,23.1,47.3z"/>
<path class="st2" d="M19.3,52.9l-0.8-0.5c-0.5,0.8-1,1.6-1.5,2.4l0.8,0.5C18.3,54.5,18.8,53.7,19.3,52.9z"/>
<path class="st2" d="M27.2,42l-0.7-0.6c-0.6,0.7-1.2,1.5-1.8,2.2l0.7,0.6C26,43.4,26.6,42.7,27.2,42z"/>
<path class="st2" d="M25.1,44.6L24.4,44c-0.6,0.8-1.1,1.5-1.7,2.3l0.8,0.5C24,46.1,24.5,45.3,25.1,44.6z"/>
<path class="st2" d="M17.6,55.8l-0.8-0.5c-0.5,0.8-0.9,1.6-1.4,2.5l0.8,0.4C16.6,57.4,17.1,56.6,17.6,55.8z"/>
<path class="st2" d="M9.1,74.1l-0.9-0.3c-0.3,0.9-0.6,1.8-0.9,2.7l0.9,0.3C8.4,75.8,8.7,74.9,9.1,74.1z"/>
<path class="st2" d="M9.8,72.1c0.2-0.4,0.3-0.8,0.5-1.2l-0.9-0.3C9.2,71,9,71.4,8.9,71.8c-0.2,0.5-0.4,1-0.5,1.5l0.9,0.3 C9.4,73.1,9.6,72.6,9.8,72.1z"/>
<path class="st2" d="M11.5,67.8l-0.9-0.4c-0.4,0.9-0.7,1.8-1.1,2.6l0.9,0.3C10.8,69.5,11.1,68.6,11.5,67.8z"/>
<path class="st2" d="M12.9,64.7L12,64.3c-0.4,0.9-0.8,1.7-1.2,2.6l0.9,0.4C12.1,66.4,12.5,65.6,12.9,64.7z"/>
<path class="st2" d="M14.4,61.7l-0.8-0.4c-0.4,0.8-0.8,1.7-1.3,2.6l0.8,0.4C13.5,63.4,13.9,62.5,14.4,61.7z"/>
<path class="st2" d="M15.9,58.7l-0.8-0.4c-0.5,0.8-0.9,1.7-1.3,2.5l0.8,0.4C15,60.4,15.5,59.5,15.9,58.7z"/>
<path class="st2" d="M86.3,5.5l-0.2-0.9c-0.9,0.2-1.9,0.4-2.8,0.7l0.2,0.9C84.5,5.9,85.4,5.7,86.3,5.5z"/>
<path class="st2" d="M120.4,3.3c0.9,0.1,1.9,0.2,2.8,0.3l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.3L120.4,3.3z"/>
<path class="st2" d="M140.2,7.2c0.9,0.3,1.8,0.5,2.7,0.8l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.8L140.2,7.2z"/>
<path class="st2" d="M117,3c0.9,0.1,1.9,0.1,2.8,0.2l0.1-0.9c-0.9-0.1-1.9-0.2-2.8-0.2L117,3z"/>
<path class="st2" d="M146.9,8.4l-0.3,0.9c0.4,0.2,0.9,0.3,1.3,0.5c0.4,0.2,0.9,0.3,1.3,0.5l0.3-0.9c-0.4-0.2-0.9-0.4-1.3-0.5 C147.8,8.7,147.3,8.6,146.9,8.4z"/>
<path class="st2" d="M149.7,10.5c0.9,0.3,1.7,0.7,2.6,1.1l0.4-0.9c-0.9-0.4-1.8-0.7-2.6-1.1L149.7,10.5z"/>
<path class="st2" d="M143.4,8.2c0.9,0.3,1.8,0.6,2.7,0.9l0.3-0.9c-0.9-0.3-1.8-0.6-2.7-0.9L143.4,8.2z"/>
<path class="st2" d="M130.4,4.8c0.9,0.2,1.8,0.4,2.8,0.6l0.2-0.9c-0.9-0.2-1.9-0.4-2.8-0.6L130.4,4.8z"/>
<path class="st2" d="M136.9,6.3c0.9,0.2,1.8,0.5,2.7,0.7l0.3-0.9c-0.9-0.3-1.8-0.5-2.8-0.8L136.9,6.3z"/>
<path class="st2" d="M133.7,5.5c0.9,0.2,1.8,0.4,2.7,0.7l0.2-0.9c-0.9-0.2-1.8-0.5-2.8-0.7L133.7,5.5z"/>
<path class="st2" d="M123.7,3.7c0.9,0.1,1.9,0.3,2.8,0.4l0.1-0.9c-0.9-0.1-1.9-0.3-2.8-0.4L123.7,3.7z"/>
<path class="st2" d="M127.1,4.2c0.9,0.2,1.9,0.3,2.8,0.5l0.2-0.9c-0.9-0.2-1.9-0.3-2.8-0.5L127.1,4.2z"/>
<path class="st2" d="M152.8,11.8c0.9,0.4,1.7,0.8,2.6,1.2l0.4-0.8c-0.9-0.4-1.7-0.8-2.6-1.2L152.8,11.8z"/>
<path class="st2" d="M113.6,2.9c0.9,0,1.9,0.1,2.8,0.1l0.1-0.9c-1-0.1-1.9-0.1-2.9-0.1L113.6,2.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

BIN
images/people/fabio.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
images/people/luca.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/people/lucaSel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
images/people/lucia.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
images/people/maria.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
images/people/mariaSel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
images/people/paolo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
images/people/paoloSel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
images/people/sarah.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/people/sarahSel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
images/phone.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
images/photo-compare.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 KiB

BIN
images/photo-compare2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

BIN
images/smartwatch.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
images/store.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

BIN
images/video.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

26
index.php

@ -3,7 +3,7 @@
@include 'cgi-bin/functions.inc';
@include 'cgi-bin/params.inc';
$GLOBALS['getQ'][0]="home";
$GLOBALS['getQ'][0]="login";
$GLOBALS['isHome'] = true;
if(@$_GET['q']){
@ -28,26 +28,46 @@
<base href="<?php echo $BASE_URL;?>/">
<link href="<?php echo $BASE_URL;?>/css/styles.css" rel="stylesheet" type="text/css"/>
<link href='http://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
<!-- <link href="<?php echo $BASE_URL;?>/node_modules/jquery.scrollbar/jquery.scrollbar.css" rel="stylesheet" type="text/css"/> -->
</head>
<body itemscope itemtype="http://schema.org/WebPage" class="<?php if($isHome){echo "is-home";}?>">
<?php
@include 'header.php';
if($getQ[0]=="login"){
@include 'login.php';
}
?>
<section>
<div id="MainContent" class="container">
<div class="row">
<?php
@include $getQ[0].'.php';
if($getQ[0]!="login"){
@include $getQ[0].'.php';
}
?>
</div>
</div>
</section>
<div id="dropLoading">
<div class="box">
<div class="count">0</div>
<img class="anim" src="<?php echo $BASE_URL;?>/images/loader.svg" />
<div class="text">...</div>
</div>
</div>
<script type="text/javascript" src="<?php echo $BASE_URL;?>/node_modules/jquery/dist/jquery.min.js"></script>
<!-- <script type="text/javascript" src="<?php echo $BASE_URL;?>/node_modules/jquery.scrollbar/jquery.scrollbar.min.js"></script> -->
<script type="text/javascript" src="<?php echo $BASE_URL;?>/js/scripts.js"></script>
<?php
@include 'scripts/'.$getQ[0].'.php';
?>
</body>

33
js/compatibility.js

@ -0,0 +1,33 @@
$(document).ready(()=>{
const compatibility = $('.compatibility')
const sheets = compatibility.find('.sheet-container')
const values = sheets.find('.value')
const confirm = compatibility.find('.button.confirm')
const loading = $('#dropLoading')
values.each((index,elem)=>{
const el = $(elem)
const percent = el.find('.percent')
const value = percent.data('percent')+'%'
percent.animate({'width': value},500)
})
confirm.on('click', ()=>{
loading.find('.text').text('Personalizzazione della formazione in corso ...')
loading.fadeIn()
timeout_trigger()
setTimeout(()=>{
loading.fadeOut(()=>{
window.location='plans'
})
},6500)
})
})

1060
js/loading.js

File diff suppressed because one or more lines are too long

83
js/modules.js

@ -0,0 +1,83 @@
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("ID", ev.target.id)
$('.drop-action').addClass('drop-inactive')
$('.droppable').removeClass('drop-inactive').addClass('drop-active')
}
function drop(ev) {
ev.preventDefault();
const target = $(ev.currentTarget)
const overlay = $('#dropConfirm')
const loading = $('#dropLoading')
const discard = overlay.find('.discard')
const confirm = overlay.find('.confirm')
const data = ev.dataTransfer.getData("ID")
let once = true
overlay.fadeIn()
discard.on('click',()=>{
if(once){
overlay.fadeOut()
once = false
}
})
confirm.on('click', ()=>{
const module = $('#'+data)
if(once){
loading.find('.text').text('Analisi di compatibilità del modulo in corso ...')
overlay.fadeOut()
loading.fadeIn()
timeout_trigger()
if(target.find('.modules-container').length){
target.find('.modules-container').append('<div class="div-drag">'+module.text()+'</div>')
}else{
$('.modules-container').append('<div class="div-drag">'+module.text()+'</div>')
}
setTimeout(()=>{
loading.fadeOut()
window.location = 'compatibility'
},6800)
once = false
}
})
}
function dragLeave(ev) {
$('.drop-action').removeClass('drop-inactive')
$('.droppable').removeClass('drop-active')
}
$(document).ready(()=>{
$(document).keypress((event)=> {
if(event.which == 32){
window.location = 'compatibility'
}
})
})

54
js/monitoring-intern.js

@ -0,0 +1,54 @@
$(document).ready(()=>{
const monitoring = $('.monitoring')
const smartwatch = monitoring.find('.smartwatch')
const clouds = monitoring.find('.cloud')
const content = smartwatch.find('.content')
const firstChild = content.find('.cloud').first()
const delay = 1200
let timer = 0
let cloudCount = 0
const people = monitoring.find('.people')
const luca = monitoring.find('.people.luca')
const sarah = monitoring.find('.people.sarah')
const fabio = monitoring.find('.people.fabio')
const maria = monitoring.find('.people.mariaSel')
const lucia = monitoring.find('.people.lucia')
const paolo = monitoring.find('.people.paoloSel')
luca.css({'top': '425px','left': '370px'}).fadeIn(400)
sarah.css({'top': '415px','left': '390px'})
maria.css({'top': '180px','left': '135px'})
fabio.css({'top': '150px','left': '110px'})
lucia.css({'top': '285px','left': '300px'})
paolo.css({'top': '205px','left': '300px'}).fadeIn(700)
setTimeout(()=>{
paolo.animate({'top': '260px','left': '395px'},2000)
}, delay)
setTimeout(()=>{
paolo.animate({'top': '275px','left': '420px'},1900)
}, delay*2)
setTimeout(()=>{
paolo.animate({'top': '245px','left': '390px'},1800)
}, delay*3)
setTimeout(()=>{
clouds.fadeIn()
$('#notify1')[0].play()
}, delay*6)
$('.next').on('click',()=> {
window.location = 'monitoring-seller'
})
})

75
js/monitoring-seller.js

@ -0,0 +1,75 @@
$(document).ready(()=>{
const monitoring = $('.monitoring')
const phone = monitoring.find('.phone')
const clouds = monitoring.find('.cloud')
const content = phone.find('.content')
const action = content.find('.button')
const firstChild = content.find('.cloud').first()
const delay = 1200
let timer = 0
let cloudCount = 0
const people = monitoring.find('.people')
const luca = monitoring.find('.people.luca')
const sarah = monitoring.find('.people.sarah')
const fabio = monitoring.find('.people.fabio')
const maria = monitoring.find('.people.maria')
const lucia = monitoring.find('.people.lucia')
const paolo = monitoring.find('.people.paolo')
luca.css({'top': '425px','left': '370px'})
sarah.css({'top': '415px','left': '390px'}).fadeIn()
maria.css({'top': '180px','left': '135px'})
fabio.css({'top': '150px','left': '110px'}).fadeIn()
lucia.css({'top': '340px','left': '250px'}).fadeIn()
paolo.css({'top': '240px','left': '370px'}).fadeIn()
setTimeout(()=>{
paolo.fadeOut(800)
}, delay)
setTimeout(()=>{
lucia.fadeOut(800)
}, delay*2)
setTimeout(()=>{
fabio.fadeOut(800)
}, delay*3)
setTimeout(()=>{
clouds.each((index,elem)=>{
const el = $(elem)
if(!el.hasClass('scroll')){
$('#notify1')[0].play()
el.fadeIn(500)
}
})
}, delay*6)
action.on('click', (e)=>{
const elem = $(e.currentTarget)
const show = $('#' + elem.data('cloud'))
let offset = 0
$('#notify1')[0].play()
show.fadeIn(400,()=>{
if(show.hasClass('scroll')){
offset = show.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
}
})
})
})

91
js/plans.js

@ -0,0 +1,91 @@
$(document).ready(()=>{
const plans = $('.plans')
const phones = plans.find('.phone')
const clouds = plans.find('.cloud')
const videoOpener = plans.find('.video-opener')
const delay = 1000
let timer = 0
setTimeout(()=>{
clouds.each((index,elem)=>{
const el = $(elem)
timer = index*delay
if(el.hasClass('empty') || el.hasClass('hidden')){
timer -= delay
}
if(!el.hasClass('hidden')){
setTimeout(()=>{
if(!el.hasClass('empty')){
$('#notify1')[0].play()
}
el.fadeIn(500)
},timer)
}
})
}, delay)
phones.each((index, phone)=>{
const content = $(phone).find('.content')
const actions = content.find('.button')
const firstChild = content.find('.cloud').first()
actions.each((index, button)=>{
const action = $(button)
action.on('click', (e)=>{
const elem = $(e.currentTarget)
const show = $('#' + elem.data('cloud'))
let offset = 0
$('#notify1')[0].play()
show.fadeIn(400,()=>{
if(show.hasClass('scroll')){
offset = show.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
}
})
})
})
})
videoOpener.on('click', (e)=>{
const elem = $(e.currentTarget)
const show = $('#' + elem.data('video'))
const video = show.find('video')
const close = show.find('.video-close')
show.fadeIn()
video.get(0).play()
close.on('click', (e)=>{
const elem = $(e.currentTarget)
const video = elem.siblings('video')
video.get(0).pause()
elem.parent().fadeOut()
})
})
$('.next').on('click',()=> {
window.location = 'training-pull'
})
})

58
js/scripts.js

@ -1,19 +1,49 @@
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
let counter = 0
function timeout_trigger(){
counter++
$('#dropLoading .count').text(counter + "%")
if(counter != 100) {
setTimeout('timeout_trigger()', 50)
}else{
counter = 0
}
}
function drop(ev) {
ev.preventDefault();
$(document).ready(()=>{
for(let i=0; i<5; i++){
setTimeout(()=>{
$('header.red .text-white').fadeOut(200,()=>{
$('header.red .text-white').fadeIn(500)
})
},i*1000)
}
$(document).keydown((event)=> {
// event.preventDefault()
const content = $('.phone .content.focus')
const firstChild = content.find('.cloud').first()
let top = parseInt(firstChild.css('margin-top'))
if(event.key == "ArrowUp"){
top+=70
}
if(event.key == "ArrowDown"){
top-=70
}
var data = ev.dataTransfer.getData("text");
var module = $('#'+data);
var parent = module.parent();
firstChild.animate({'margin-top':top})
// parent.append($(module.get(0)));
// ev.target.appendChild(module.get(0));
console.log(module.text());
}
})
$('.phone .content').on('click',(e)=>{
$('.phone .content').removeClass('focus')
$(e.currentTarget).addClass('focus')
})
})

157
js/training-pull.js

@ -0,0 +1,157 @@
$(document).ready(()=>{
const training = $('.training')
const phone = training.find('.phone')
const clouds = training.find('.cloud')
const input = phone.find('.input-field')
const content = phone.find('.content')
const firstChild = content.find('.cloud').first()
const delay = 1000
let timer = 0
let cloudCount = 0
const people = training.find('.people')
const luca = training.find('.people.luca')
const sarah = training.find('.people.sarah')
const fabio = training.find('.people.fabio')
const maria = training.find('.people.mariaSel')
const lucia = training.find('.people.lucia')
const paolo = training.find('.people.paoloSel')
luca.css({'top': '425px','left': '370px'}).fadeIn(400)
sarah.css({'top': '415px','left': '390px'})
fabio.css({'top': '150px','left': '110px'}).fadeIn(600)
maria.css({'top': '180px','left': '135px'})
lucia.css({'top': '345px','left': '250px'}).fadeIn(700)
paolo.css({'top': '250px','left': '390px'})
setTimeout(()=>{
clouds.each((index,elem)=>{
const el = $(elem)
timer = index*delay
if(el.hasClass('empty') || el.hasClass('hidden')){
timer -= delay
}
if(!el.hasClass('hidden')){
setTimeout(()=>{
if(!el.hasClass('empty')){
$('#notify1')[0].play()
}
el.fadeIn(500)
},timer)
}
})
maria.fadeIn().animate({'top': '195px','left': '165px'},700)
}, delay)
input.keypress((event)=> {
if(event.which == 13){
cloudCount++
let newCloud = $('<div class="cloud right">' + input.val() + '</div>')
content.append(newCloud)
newCloud.fadeIn()
$('#notify1')[0].play()
input.val("")
setTimeout(()=>{
switch(cloudCount){
case 1:
maria.animate({'top': '180px','left': '230px'},1000, ()=>{
maria.animate({'top': '225px','left': '350px'},1500)
})
newCloud = $('<div class="cloud left">Dammi informazioni sulla nazionalità.</div>')
content.append(newCloud)
newCloud.fadeIn(400,()=>{
offset = newCloud.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
})
$('#notify1')[0].play()
$('.page-title').text('Richiesta informazioni')
break;
case 2:
newCloud = $('<div class="cloud left">Su cosa desideri informazioni?</div>')
content.append(newCloud)
newCloud.fadeIn(400,()=>{
offset = newCloud.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
})
newCloud = $('<div class="cloud empty">' +
'<button class="button dotted" onClick="btnClick(this)">Approccio</button>' +
'<button class="button dotted" onClick="btnClick(this)">Saluti</button>' +
'<button class="button dotted" onClick="btnClick(this)">Da evitare</button>' +
'<button class="button dotted" onClick="btnClick(this)">Altro</button>' +
'</div>')
content.append(newCloud)
newCloud.fadeIn(400,()=>{
offset = newCloud.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
})
$('#notify1')[0].play()
break;
}
},2000)
}
})
$('.next').on('click',()=> {
window.location = 'training-push'
})
})
function btnClick(event){
const content = $('.training .phone .content')
const firstChild = content.find('.cloud').first()
newCloud = $('<div class="cloud right">' + $(event).text() + '</div>')
content.append(newCloud)
newCloud.fadeIn(400,()=>{
offset = newCloud.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
})
$('#notify1')[0].play()
setTimeout(()=>{
newCloud = $('<div class="cloud left">Ricordati di non avvicinarti eccessivamente</div>')
content.append(newCloud)
newCloud.fadeIn(400,()=>{
offset = newCloud.offset().top - content.offset().top - 20
firstChild.animate({'margin-top': '-' + offset},400)
})
$('#notify1')[0].play()
},2000)
}

90
js/training-push.js

@ -0,0 +1,90 @@
$(document).ready(()=>{
const training = $('.training')
const phone = training.find('.phone')
const clouds = training.find('.cloud')
const input = phone.find('.input-field')
const content = phone.find('.content')
const firstChild = content.find('.cloud').first()
const delay = 1000
let timer = 0
let cloudCount = 0
const people = training.find('.people')
const luca = training.find('.people.luca')
const sarah = training.find('.people.sarah')
const fabio = training.find('.people.fabio')
const maria = training.find('.people.maria')
const lucia = training.find('.people.lucia')
const paolo = training.find('.people.paolo')
luca.css({'top': '425px','left': '370px'})
sarah.css({'top': '415px','left': '390px'}).fadeIn(400)
maria.css({'top': '180px','left': '135px'})
fabio.css({'top': '150px','left': '110px'})
lucia.css({'top': '285px','left': '300px'}).fadeIn(700)
paolo.css({'top': '250px','left': '390px'})
setTimeout(()=>{
clouds.each((index,elem)=>{
const el = $(elem)
timer = index*delay
if(el.hasClass('empty') || el.hasClass('hidden')){
timer -= delay
}
if(!el.hasClass('hidden')){
setTimeout(()=>{
if(!el.hasClass('empty')){
$('#notify1')[0].play()
}
el.fadeIn(500)
},timer)
}
})
lucia.fadeIn().animate({'top': '345px','left': '250px'},700)
}, delay)
input.keypress((event)=> {
if(event.which == 13){
cloudCount++
let newCloud = $('<div class="cloud right">' + input.val() + '</div>')
content.append(newCloud)
newCloud.fadeIn()
$('#notify1')[0].play()
input.val("")
setTimeout(()=>{
switch(cloudCount){
case 1:
newCloud = $('<div class="cloud left">Prendisole 192, Shirt 744.</div>')
content.append(newCloud)
newCloud.fadeIn(400)
$('#notify1')[0].play()
break;
}
},2000)
}
})
$('.next').on('click',()=> {
window.location = 'monitoring-intern'
})
})

14
login.php

@ -0,0 +1,14 @@
<div class="login pattern">
<div class="head"></div>
<div class="content">
<div class="full-middle">
<form method="post" action="<?= $BASE_URL;?>/modules">
<p class="font-10">Username</p>
<input type="text" class="input-login">
<p class="font-10">Password</p>
<input type="password" class="input-login">
<p align="right"><button class="button big confirm" type="submit">LOG IN</button></p>
</form>
</div>
</div>
</div>

141
modules.php

@ -1,21 +1,21 @@
<div class="modules">
<div class="modules pattern">
<div class="row">
<div class="col-3 sidebar pattern">
<p class="font-14 font-bold text-upper text-red">Moduli disponibili</p>
<div class="col-3 sidebar">
<p class="font-14 font-bold text-upper text-red pb-4">Moduli disponibili</p>
<div class="px-2">
<div class="div-drag-container">
<div class="div-drag" draggable="true" ondragstart="drag(event)" id="module_DC">Differenze culturali</div>
<div class="div-drag" draggable="true" ondragstart="drag(event)" ondragend="dragLeave(event)" id="module_DC">Differenze culturali</div>
</div>
<p class="font-10 font-bold text-grey px-2">Sfruttare le differenze culturali per ottimizzare il processo di vendita</p>
<p class="font-10 font-bold text-grey px-2">Comprendere le differenze culturali che impattano sul processo di vendita</p>
<div class="div-drag-container">
<div class="div-drag" draggable="true" ondragstart="drag(event)" id="module_A">Accoglienza</div>
<div class="div-drag" draggable="true" ondragstart="drag(event)" ondragend="dragLeave(event)" id="module_A">Accoglienza</div>
</div>
<p class="font-10 font-bold text-grey px-2">Mettere il cliente nella condizione ideale per compiere un acquisto</p>
<div class="div-drag-container">
<div class="div-drag" draggable="true" ondragstart="drag(event)" id="module_GC">Gestione della cassa</div>
<div class="div-drag" draggable="true" ondragstart="drag(event)" ondragend="dragLeave(event)" id="module_GC">Gestione della cassa</div>
</div>
<p class="font-10 font-bold text-grey px-2">Ottimizzare il tempo di attesa per il pagamento delle merci</p>
</div>
@ -23,7 +23,132 @@
<div class="col-9 content">
<div class="div-drop" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<p class="font-14 font-bold text-upper text-red pb-4">Company overview</p>
<div class="row my-2">
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action active">
<div class="label">Italia</div>
<div class="data"><i class="fa fa-flag"></i> 20 <i class="fa fa-user"></i> 100</div>
</div>
</div>
</div>
<div class="row dropdown-links">
<div class="col-4 p-0 mx-auto link source"></div>
</div>
<div class="row dropdown-links">
<div class="col-4 p-0 ml-auto mr-0 link"></div>
<div class="col-4 p-0 mr-auto ml-0 link"></div>
</div>
<div class="row my-2">
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action">
<div class="label">Bari</div>
<div class="data"><i class="fa fa-flag"></i> 8 <i class="fa fa-user"></i> 40</div>
</div>
</div>
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action active">
<div class="label">Milano</div>
<div class="data"><i class="fa fa-flag"></i> 2 <i class="fa fa-user"></i> 20</div>
</div>
</div>
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action">
<div class="label">Roma</div>
<div class="data"><i class="fa fa-flag"></i> 8 <i class="fa fa-user"></i> 40</div>
</div>
</div>
</div>
<div class="row dropdown-links">
<div class="col-4 p-0 mx-auto link source"></div>
</div>
<div class="row dropdown-links">
<div class="col-6 p-0 mx-auto link"></div>
</div>
<div class="row my-2">
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action active droppable" ondrop="drop(event)" ondragover="allowDrop(event)">
<div class="label"><i class="fa fa-flag"></i> Duomo</div>
<div class="data"><i class="fa fa-user"></i> 2</div>
</div>
</div>
<div class="col-3 p-0 mx-auto">
<div class="dropdown drop-action">
<div class="label"><i class="fa fa-flag"></i> Sempione</div>
<div class="data"><i class="fa fa-user"></i> 2</div>
</div>
</div>
</div>
<div class="row my-2">
<div class="col-6 p-0">
<div class="row dropdown-links">
<div class="col-4 p-0 mx-auto link source"></div>
</div>
<div class="row dropdown-links">
<div class="col-6 p-0 mx-auto link"></div>
</div>
<div class="row">
<div class="col-6 p-2 mx-auto">
<div class="user-sheet drop-action droppable" ondrop="drop(event)" ondragover="allowDrop(event)">
<i class="fa fa-user"></i>
<div class="name">Luca</div>
<div class="rule">Stagista</div>
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/luca.png"></div>
<p class="modules-title">Azioni in corso</p>
<div class="modules-container"></div>
<div class="modules-empty">+ Aggiungi corso</div>
</div>
</div>
<div class="col-6 p-2 mx-auto">
<div class="user-sheet drop-action droppable" ondrop="drop(event)" ondragover="allowDrop(event)">
<i class="fa fa-user"></i>
<div class="name">Sarah</div>
<div class="rule">Venditore</div>
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/sara.png"></div>
<p class="modules-title">Azioni in corso</p>
<div class="modules-container"></div>
<div class="modules-empty">+ Aggiungi corso</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="dropConfirm">
<div class="alert">
<div class="title">Attivare il corso sugli utenti selezionati</div>
<button class="button confirm">Conferma</button>
<button class="button discard">Annulla</button>
</div>
</div>

48
monitoring-intern.php

@ -0,0 +1,48 @@
<div class="monitoring pattern">
<div class="row">
<div class="col-12">
<p class="font-14 p-5 page-title">COZe Monitora l'ambiente e invia informazioni contestuali per aumentare le prestazioni dei dipendenti</p>
</div>
</div>
<div class="row mb-5">
<div class="col-10 mx-auto">
<div class="row">
<div class="col-8">
<div class="store">
<div class="people luca"></div>
<div class="people sarah"></div>
<div class="people fabio"></div>
<div class="people maria"></div>
<div class="people mariaSel"></div>
<div class="people lucia"></div>
<div class="people paolo"></div>
<div class="people paoloSel"></div>
</div>
</div>
<div class="col-4">
<div class="smartwatch mx-auto" id="usr_luca">
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/luca.png"></div>
<div class="name">Luca</div>
<div class="rule">Stagista</div>
<div class="content">
<div class="cloud left hidden">
Un cliente sta da tempo osservando un prodotto nella zona giacche, potrebbe aver bisogno di aiuto!
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<audio id="notify1">
<source src="<?= $BASE_URL;?>/sounds/message.wav" type="audio/wav">
</audio>
<div class="next"><i class="fa fa-arrow-right"></i></div>

60
monitoring-seller.php

@ -0,0 +1,60 @@
<div class="monitoring pattern">
<div class="row">
<div class="col-12">
<p class="font-14 p-5 page-title">Lo store è vuoto – COZe propone al venditore momenti di formazione</p>
</div>
</div>
<div class="row mb-5">
<div class="col-10 mx-auto">
<div class="row">
<div class="col-8">
<div class="store">
<div class="people luca"></div>
<div class="people sarah"></div>
<div class="people fabio"></div>
<div class="people maria"></div>
<div class="people mariaSel"></div>
<div class="people lucia"></div>
<div class="people paolo"></div>
<div class="people paoloSel"></div>
</div>
</div>
<div class="col-4">
<div class="phone mx-auto" id="usr_sarah">
<div class="avatar"><img src="<?= $BASE_URL;?>/images/avatar/sara.png"></div>
<div class="name">Sarah</div>
<div class="rule">Venditore</div>
<div class="content">
<div class="cloud left hidden">
Ciao Sarah, vorrei discutere con te dell'importanza di non rispondere a domande non fatte dal cliente (tema 3, regola 1)
</div>
<div class="cloud empty">
<button class="button dotted" data-cloud="sarah_1">Ok</button>
</div>
<div class="cloud left hidden scroll" id="sarah_1">
<b>TEMA 3 COMPETENZE DI VENDITA - REGOLA#1<br><br>
Non rispondere a domande non fatte</b><br><br>
Il cliente chiede di un prodotto. È meglio limitarsi a domandare cosa il cliente voglia sapere del prodotto.<br>
<b>Ad esempio, colore, materiale, taglia.</b>
<img src="<?= $BASE_URL;?>/images/photo-compare2.jpg" width="100%">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<audio id="notify1">
<source src="<?= $BASE_URL;?>/sounds/message.wav" type="audio/wav">
</audio>

1
node_modules/.bin/mime

@ -0,0 +1 @@
../mime/cli.js

212
node_modules/accepts/HISTORY.md

@ -0,0 +1,212 @@
1.3.3 / 2016-05-02
==================
* deps: mime-types@~2.1.11
- deps: mime-db@~1.23.0
* deps: negotiator@0.6.1
- perf: improve `Accept` parsing speed
- perf: improve `Accept-Charset` parsing speed
- perf: improve `Accept-Encoding` parsing speed
- perf: improve `Accept-Language` parsing speed
1.3.2 / 2016-03-08
==================
* deps: mime-types@~2.1.10
- Fix extension of `application/dash+xml`
- Update primary extension for `audio/mp4`
- deps: mime-db@~1.22.0
1.3.1 / 2016-01-19
==================
* deps: mime-types@~2.1.9
- deps: mime-db@~1.21.0
1.3.0 / 2015-09-29
==================
* deps: mime-types@~2.1.7
- deps: mime-db@~1.19.0
* deps: negotiator@0.6.0
- Fix including type extensions in parameters in `Accept` parsing
- Fix parsing `Accept` parameters with quoted equals
- Fix parsing `Accept` parameters with quoted semicolons
- Lazy-load modules from main entry point
- perf: delay type concatenation until needed
- perf: enable strict mode
- perf: hoist regular expressions
- perf: remove closures getting spec properties
- perf: remove a closure from media type parsing
- perf: remove property delete from media type parsing
1.2.13 / 2015-09-06
===================
* deps: mime-types@~2.1.6
- deps: mime-db@~1.18.0
1.2.12 / 2015-07-30
===================
* deps: mime-types@~2.1.4
- deps: mime-db@~1.16.0
1.2.11 / 2015-07-16
===================
* deps: mime-types@~2.1.3
- deps: mime-db@~1.15.0
1.2.10 / 2015-07-01
===================
* deps: mime-types@~2.1.2
- deps: mime-db@~1.14.0
1.2.9 / 2015-06-08
==================
* deps: mime-types@~2.1.1
- perf: fix deopt during mapping
1.2.8 / 2015-06-07
==================
* deps: mime-types@~2.1.0
- deps: mime-db@~1.13.0
* perf: avoid argument reassignment & argument slice
* perf: avoid negotiator recursive construction
* perf: enable strict mode
* perf: remove unnecessary bitwise operator
1.2.7 / 2015-05-10
==================
* deps: negotiator@0.5.3
- Fix media type parameter matching to be case-insensitive
1.2.6 / 2015-05-07
==================
* deps: mime-types@~2.0.11
- deps: mime-db@~1.9.1
* deps: negotiator@0.5.2
- Fix comparing media types with quoted values
- Fix splitting media types with quoted commas
1.2.5 / 2015-03-13
==================
* deps: mime-types@~2.0.10
- deps: mime-db@~1.8.0
1.2.4 / 2015-02-14
==================
* Support Node.js 0.6
* deps: mime-types@~2.0.9
- deps: mime-db@~1.7.0
* deps: negotiator@0.5.1
- Fix preference sorting to be stable for long acceptable lists
1.2.3 / 2015-01-31
==================
* deps: mime-types@~2.0.8
- deps: mime-db@~1.6.0
1.2.2 / 2014-12-30
==================
* deps: mime-types@~2.0.7
- deps: mime-db@~1.5.0
1.2.1 / 2014-12-30
==================
* deps: mime-types@~2.0.5
- deps: mime-db@~1.3.1
1.2.0 / 2014-12-19
==================
* deps: negotiator@0.5.0
- Fix list return order when large accepted list
- Fix missing identity encoding when q=0 exists
- Remove dynamic building of Negotiator class
1.1.4 / 2014-12-10
==================
* deps: mime-types@~2.0.4
- deps: mime-db@~1.3.0
1.1.3 / 2014-11-09
==================
* deps: mime-types@~2.0.3
- deps: mime-db@~1.2.0
1.1.2 / 2014-10-14
==================
* deps: negotiator@0.4.9
- Fix error when media type has invalid parameter
1.1.1 / 2014-09-28
==================
* deps: mime-types@~2.0.2
- deps: mime-db@~1.1.0
* deps: negotiator@0.4.8
- Fix all negotiations to be case-insensitive
- Stable sort preferences of same quality according to client order
1.1.0 / 2014-09-02
==================
* update `mime-types`
1.0.7 / 2014-07-04
==================
* Fix wrong type returned from `type` when match after unknown extension
1.0.6 / 2014-06-24
==================
* deps: negotiator@0.4.7
1.0.5 / 2014-06-20
==================
* fix crash when unknown extension given
1.0.4 / 2014-06-19
==================
* use `mime-types`
1.0.3 / 2014-06-11
==================
* deps: negotiator@0.4.6
- Order by specificity when quality is the same
1.0.2 / 2014-05-29
==================
* Fix interpretation when header not in request
* deps: pin negotiator@0.4.5
1.0.1 / 2014-01-18
==================
* Identity encoding isn't always acceptable
* deps: negotiator@~0.4.0
1.0.0 / 2013-12-27
==================
* Genesis

23
node_modules/accepts/LICENSE

@ -0,0 +1,23 @@
(The MIT License)
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

135
node_modules/accepts/README.md

@ -0,0 +1,135 @@
# accepts
[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Node.js Version][node-version-image]][node-version-url]
[![Build Status][travis-image]][travis-url]
[![Test Coverage][coveralls-image]][coveralls-url]
Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). Extracted from [koa](https://www.npmjs.com/package/koa) for general use.
In addition to negotiator, it allows:
- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` as well as `('text/html', 'application/json')`.
- Allows type shorthands such as `json`.
- Returns `false` when no types match
- Treats non-existent headers as `*`
## Installation
```sh
npm install accepts
```
## API
```js
var accepts = require('accepts')
```
### accepts(req)
Create a new `Accepts` object for the given `req`.
#### .charset(charsets)
Return the first accepted charset. If nothing in `charsets` is accepted,
then `false` is returned.
#### .charsets()
Return the charsets that the request accepts, in the order of the client's
preference (most preferred first).
#### .encoding(encodings)
Return the first accepted encoding. If nothing in `encodings` is accepted,
then `false` is returned.
#### .encodings()
Return the encodings that the request accepts, in the order of the client's
preference (most preferred first).
#### .language(languages)
Return the first accepted language. If nothing in `languages` is accepted,
then `false` is returned.
#### .languages()
Return the languages that the request accepts, in the order of the client's
preference (most preferred first).
#### .type(types)
Return the first accepted type (and it is returned as the same text as what
appears in the `types` array). If nothing in `types` is accepted, then `false`
is returned.
The `types` array can contain full MIME types or file extensions. Any value
that is not a full MIME types is passed to `require('mime-types').lookup`.
#### .types()
Return the types that the request accepts, in the order of the client's
preference (most preferred first).
## Examples
### Simple type negotiation
This simple example shows how to use `accepts` to return a different typed
respond body based on what the client wants to accept. The server lists it's
preferences in order and will get back the best match between the client and
server.
```js
var accepts = require('accepts')
var http = require('http')
function app(req, res) {
var accept = accepts(req)
// the order of this list is significant; should be server preferred order
switch(accept.type(['json', 'html'])) {
case 'json':
res.setHeader('Content-Type', 'application/json')
res.write('{"hello":"world!"}')
break
case 'html':
res.setHeader('Content-Type', 'text/html')
res.write('<b>hello, world!</b>')
break
default:
// the fallback is text/plain, so no need to specify it above
res.setHeader('Content-Type', 'text/plain')
res.write('hello, world!')
break
}
res.end()
}
http.createServer(app).listen(3000)
```
You can test this out with the cURL program:
```sh
curl -I -H'Accept: text/html' http://localhost:3000/
```
## License
[MIT](LICENSE)
[npm-image]: https://img.shields.io/npm/v/accepts.svg
[npm-url]: https://npmjs.org/package/accepts
[node-version-image]: https://img.shields.io/node/v/accepts.svg
[node-version-url]: http://nodejs.org/download/
[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg
[travis-url]: https://travis-ci.org/jshttp/accepts
[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg
[coveralls-url]: https://coveralls.io/r/jshttp/accepts
[downloads-image]: https://img.shields.io/npm/dm/accepts.svg
[downloads-url]: https://npmjs.org/package/accepts

231
node_modules/accepts/index.js

@ -0,0 +1,231 @@
/*!
* accepts
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
'use strict'
/**
* Module dependencies.
* @private
*/
var Negotiator = require('negotiator')
var mime = require('mime-types')
/**
* Module exports.
* @public
*/
module.exports = Accepts
/**
* Create a new Accepts object for the given req.
*
* @param {object} req
* @public
*/
function Accepts(req) {
if (!(this instanceof Accepts))
return new Accepts(req)
this.headers = req.headers
this.negotiator = new Negotiator(req)
}
/**
* Check if the given `type(s)` is acceptable, returning
* the best match when true, otherwise `undefined`, in which
* case you should respond with 406 "Not Acceptable".
*
* The `type` value may be a single mime type string
* such as "application/json", the extension name
* such as "json" or an array `["json", "html", "text/plain"]`. When a list
* or array is given the _best_ match, if any is returned.
*
* Examples:
*
* // Accept: text/html
* this.types('html');
* // => "html"
*
* // Accept: text/*, application/json
* this.types('html');
* // => "html"
* this.types('text/html');
* // => "text/html"
* this.types('json', 'text');
* // => "json"
* this.types('application/json');
* // => "application/json"
*
* // Accept: text/*, application/json
* this.types('image/png');
* this.types('png');
* // => undefined
*
* // Accept: text/*;q=.5, application/json
* this.types(['html', 'json']);
* this.types('html', 'json');
* // => "json"
*
* @param {String|Array} types...
* @return {String|Array|Boolean}
* @public
*/
Accepts.prototype.type =
Accepts.prototype.types = function (types_) {
var types = types_
// support flattened arguments
if (types && !Array.isArray(types)) {
types = new Array(arguments.length)
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i]
}
}
// no types, return all requested types
if (!types || types.length === 0) {
return this.negotiator.mediaTypes()
}
if (!this.headers.accept) return types[0];
var mimes = types.map(extToMime);
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
var first = accepts[0];
if (!first) return false;
return types[mimes.indexOf(first)];
}
/**
* Return accepted encodings or best fit based on `encodings`.
*
* Given `Accept-Encoding: gzip, deflate`
* an array sorted by quality is returned:
*
* ['gzip', 'deflate']
*
* @param {String|Array} encodings...
* @return {String|Array}
* @public
*/
Accepts.prototype.encoding =
Accepts.prototype.encodings = function (encodings_) {
var encodings = encodings_
// support flattened arguments
if (encodings && !Array.isArray(encodings)) {
encodings = new Array(arguments.length)
for (var i = 0; i < encodings.length; i++) {
encodings[i] = arguments[i]
}
}
// no encodings, return all requested encodings
if (!encodings || encodings.length === 0) {
return this.negotiator.encodings()
}
return this.negotiator.encodings(encodings)[0] || false
}
/**
* Return accepted charsets or best fit based on `charsets`.
*
* Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
* an array sorted by quality is returned:
*
* ['utf-8', 'utf-7', 'iso-8859-1']
*
* @param {String|Array} charsets...
* @return {String|Array}
* @public
*/
Accepts.prototype.charset =
Accepts.prototype.charsets = function (charsets_) {
var charsets = charsets_
// support flattened arguments
if (charsets && !Array.isArray(charsets)) {
charsets = new Array(arguments.length)
for (var i = 0; i < charsets.length; i++) {
charsets[i] = arguments[i]
}
}
// no charsets, return all requested charsets
if (!charsets || charsets.length === 0) {
return this.negotiator.charsets()
}
return this.negotiator.charsets(charsets)[0] || false
}
/**
* Return accepted languages or best fit based on `langs`.
*
* Given `Accept-Language: en;q=0.8, es, pt`
* an array sorted by quality is returned:
*
* ['es', 'pt', 'en']
*
* @param {String|Array} langs...
* @return {Array|String}
* @public
*/
Accepts.prototype.lang =
Accepts.prototype.langs =
Accepts.prototype.language =
Accepts.prototype.languages = function (languages_) {
var languages = languages_
// support flattened arguments
if (languages && !Array.isArray(languages)) {
languages = new Array(arguments.length)
for (var i = 0; i < languages.length; i++) {
languages[i] = arguments[i]
}
}
// no languages, return all requested languages
if (!languages || languages.length === 0) {
return this.negotiator.languages()
}
return this.negotiator.languages(languages)[0] || false
}
/**
* Convert extnames to mime.
*
* @param {String} type
* @return {String}
* @private
*/
function extToMime(type) {
return type.indexOf('/') === -1
? mime.lookup(type)
: type
}
/**
* Check if mime is valid.
*
* @param {String} type
* @return {String}
* @private
*/
function validMime(type) {
return typeof type === 'string';
}

77
node_modules/accepts/package.json

@ -0,0 +1,77 @@
{
"_from": "accepts@1.3.3",
"_id": "accepts@1.3.3",
"_inBundle": false,
"_integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
"_location": "/accepts",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "accepts@1.3.3",
"name": "accepts",
"escapedName": "accepts",
"rawSpec": "1.3.3",
"saveSpec": null,
"fetchSpec": "1.3.3"
},
"_requiredBy": [
"/engine.io"
],
"_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
"_shasum": "c3ca7434938648c3e0d9c1e328dd68b622c284ca",
"_spec": "accepts@1.3.3",
"_where": "/var/www/htdocs/coze/node_modules/engine.io",
"bugs": {
"url": "https://github.com/jshttp/accepts/issues"
},
"bundleDependencies": false,
"contributors": [
{
"name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com"
},
{
"name": "Jonathan Ong",
"email": "me@jongleberry.com",
"url": "http://jongleberry.com"
}
],
"dependencies": {
"mime-types": "~2.1.11",
"negotiator": "0.6.1"
},
"deprecated": false,
"description": "Higher-level content negotiation",
"devDependencies": {
"istanbul": "0.4.3",
"mocha": "~1.21.5"
},
"engines": {
"node": ">= 0.6"
},
"files": [
"LICENSE",
"HISTORY.md",
"index.js"
],
"homepage": "https://github.com/jshttp/accepts#readme",
"keywords": [
"content",
"negotiation",
"accept",
"accepts"
],
"license": "MIT",
"name": "accepts",
"repository": {
"type": "git",
"url": "git+https://github.com/jshttp/accepts.git"
},
"scripts": {
"test": "mocha --reporter spec --check-leaks --bail test/",
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
"test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
},
"version": "1.3.3"
}

2
node_modules/after/.npmignore

@ -0,0 +1,2 @@
node_modules
.monitor

12
node_modules/after/.travis.yml

@ -0,0 +1,12 @@
language: node_js
node_js:
- 0.6
- 0.8
- 0.9
- 0.10
- 0.12
- 4.2.4
- 5.4.1
- iojs-1
- iojs-2
- iojs-3

19
node_modules/after/LICENCE

@ -0,0 +1,19 @@
Copyright (c) 2011 Raynos.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

115
node_modules/after/README.md

@ -0,0 +1,115 @@
# After [![Build Status][1]][2]
Invoke callback after n calls
## Status: production ready
## Example
```js
var after = require("after")
var db = require("./db") // some db.
var updateUser = function (req, res) {
// use after to run two tasks in parallel,
// namely get request body and get session
// then run updateUser with the results
var next = after(2, updateUser)
var results = {}
getJSONBody(req, res, function (err, body) {
if (err) return next(err)
results.body = body
next(null, results)
})
getSessionUser(req, res, function (err, user) {
if (err) return next(err)
results.user = user
next(null, results)
})
// now do the thing!
function updateUser(err, result) {
if (err) {
res.statusCode = 500
return res.end("Unexpected Error")
}
if (!result.user || result.user.role !== "admin") {
res.statusCode = 403
return res.end("Permission Denied")
}
db.put("users:" + req.params.userId, result.body, function (err) {
if (err) {
res.statusCode = 500
return res.end("Unexpected Error")
}
res.statusCode = 200
res.end("Ok")
})
}
}
```
## Naive Example
```js
var after = require("after")
, next = after(3, logItWorks)
next()
next()
next() // it works
function logItWorks() {
console.log("it works!")
}
```
## Example with error handling
```js
var after = require("after")
, next = after(3, logError)
next()
next(new Error("oops")) // logs oops
next() // does nothing
// This callback is only called once.
// If there is an error the callback gets called immediately
// this avoids the situation where errors get lost.
function logError(err) {
console.log(err)
}
```
## Installation
`npm install after`
## Tests
`npm test`
## Contributors
- Raynos
- defunctzombie
## MIT Licenced
[1]: https://secure.travis-ci.org/Raynos/after.png
[2]: http://travis-ci.org/Raynos/after
[3]: http://raynos.org/blog/2/Flow-control-in-node.js
[4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307
[5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031
[6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419
[7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091
[8]: http://github.com/Raynos/iterators
[9]: http://github.com/Raynos/composite

28
node_modules/after/index.js

@ -0,0 +1,28 @@
module.exports = after
function after(count, callback, err_cb) {
var bail = false
err_cb = err_cb || noop
proxy.count = count
return (count === 0) ? callback() : proxy
function proxy(err, result) {
if (proxy.count <= 0) {
throw new Error('after called too many times')
}
--proxy.count
// after first error, rest are passed to err_cb
if (err) {
bail = true
callback(err)
// future error callbacks will go to error handler
callback = err_cb
} else if (proxy.count === 0 && !bail) {
callback(null, result)
}
}
}
function noop() {}

63
node_modules/after/package.json

@ -0,0 +1,63 @@
{
"_from": "after@0.8.2",
"_id": "after@0.8.2",
"_inBundle": false,
"_integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
"_location": "/after",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "after@0.8.2",
"name": "after",
"escapedName": "after",
"rawSpec": "0.8.2",
"saveSpec": null,
"fetchSpec": "0.8.2"
},
"_requiredBy": [
"/engine.io-parser"
],
"_resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"_shasum": "fedb394f9f0e02aa9768e702bda23b505fae7e1f",
"_spec": "after@0.8.2",
"_where": "/var/www/htdocs/coze/node_modules/engine.io-parser",
"author": {
"name": "Raynos",
"email": "raynos2@gmail.com"
},
"bugs": {
"url": "https://github.com/Raynos/after/issues"
},
"bundleDependencies": false,
"contributors": [
{
"name": "Raynos",
"email": "raynos2@gmail.com",
"url": "http://raynos.org"
}
],
"deprecated": false,
"description": "after - tiny flow control",
"devDependencies": {
"mocha": "~1.8.1"
},
"homepage": "https://github.com/Raynos/after#readme",
"keywords": [
"flowcontrol",
"after",
"flow",
"control",
"arch"
],
"license": "MIT",
"name": "after",
"repository": {
"type": "git",
"url": "git://github.com/Raynos/after.git"
},
"scripts": {
"test": "mocha --ui tdd --reporter spec test/*.js"
},
"version": "0.8.2"
}

120
node_modules/after/test/after-test.js

@ -0,0 +1,120 @@
/*global suite, test*/
var assert = require("assert")
, after = require("../")
test("exists", function () {
assert(typeof after === "function", "after is not a function")
})
test("after when called with 0 invokes", function (done) {
after(0, done)
});
test("after 1", function (done) {
var next = after(1, done)
next()
})
test("after 5", function (done) {
var next = after(5, done)
, i = 5
while (i--) {
next()
}
})
test("manipulate count", function (done) {
var next = after(1, done)
, i = 5
next.count = i
while (i--) {
next()
}
})
test("after terminates on error", function (done) {
var next = after(2, function(err) {
assert.equal(err.message, 'test');
done();
})
next(new Error('test'))
next(new Error('test2'))
})
test('gee', function(done) {
done = after(2, done)
function cb(err) {
assert.equal(err.message, 1);
done()
}
var next = after(3, cb, function(err) {
assert.equal(err.message, 2)
done()
});
next()
next(new Error(1))
next(new Error(2))
})
test('eee', function(done) {
done = after(3, done)
function cb(err) {
assert.equal(err.message, 1);
done()
}
var next = after(3, cb, function(err) {
assert.equal(err.message, 2)
done()
});
next(new Error(1))
next(new Error(2))
next(new Error(2))
})
test('gge', function(done) {
function cb(err) {
assert.equal(err.message, 1);
done()
}
var next = after(3, cb, function(err) {
// should not happen
assert.ok(false);
});
next()
next()
next(new Error(1))
})
test('egg', function(done) {
function cb(err) {
assert.equal(err.message, 1);
done()
}
var next = after(3, cb, function(err) {
// should not happen
assert.ok(false);
});
next(new Error(1))
next()
next()
})
test('throws on too many calls', function(done) {
var next = after(1, done);
next()
assert.throws(next, /after called too many times/);
});

21
node_modules/array-flatten/LICENSE

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

43
node_modules/array-flatten/README.md

@ -0,0 +1,43 @@
# Array Flatten
[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]
[![Build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
> Flatten an array of nested arrays into a single flat array. Accepts an optional depth.
## Installation
```
npm install array-flatten --save
```
## Usage
```javascript
var flatten = require('array-flatten')
flatten([1, [2, [3, [4, [5], 6], 7], 8], 9])
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2)
//=> [1, 2, 3, [4, [5], 6], 7, 8, 9]
(function () {
flatten(arguments) //=> [1, 2, 3]
})(1, [2, 3])
```
## License
MIT
[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat
[npm-url]: https://npmjs.org/package/array-flatten
[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat
[downloads-url]: https://npmjs.org/package/array-flatten
[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat
[travis-url]: https://travis-ci.org/blakeembrey/array-flatten
[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat
[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master

64
node_modules/array-flatten/array-flatten.js

@ -0,0 +1,64 @@
'use strict'
/**
* Expose `arrayFlatten`.
*/
module.exports = arrayFlatten
/**
* Recursive flatten function with depth.
*
* @param {Array} array
* @param {Array} result
* @param {Number} depth
* @return {Array}
*/
function flattenWithDepth (array, result, depth) {
for (var i = 0; i < array.length; i++) {
var value = array[i]
if (depth > 0 && Array.isArray(value)) {
flattenWithDepth(value, result, depth - 1)
} else {
result.push(value)
}
}
return result
}
/**
* Recursive flatten function. Omitting depth is slightly faster.
*
* @param {Array} array
* @param {Array} result
* @return {Array}
*/
function flattenForever (array, result) {
for (var i = 0; i < array.length; i++) {
var value = array[i]
if (Array.isArray(value)) {
flattenForever(value, result)
} else {
result.push(value)
}
}
return result
}
/**
* Flatten an array, with the ability to define a depth.
*
* @param {Array} array
* @param {Number} depth
* @return {Array}
*/
function arrayFlatten (array, depth) {
if (depth == null) {
return flattenForever(array, [])
}
return flattenWithDepth(array, [], depth)
}

64
node_modules/array-flatten/package.json

@ -0,0 +1,64 @@
{
"_from": "array-flatten@1.1.1",
"_id": "array-flatten@1.1.1",
"_inBundle": false,
"_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
"_location": "/array-flatten",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "array-flatten@1.1.1",
"name": "array-flatten",
"escapedName": "array-flatten",
"rawSpec": "1.1.1",
"saveSpec": null,
"fetchSpec": "1.1.1"
},
"_requiredBy": [
"/express"
],
"_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2",
"_spec": "array-flatten@1.1.1",
"_where": "/var/www/htdocs/coze/node_modules/express",
"author": {
"name": "Blake Embrey",
"email": "hello@blakeembrey.com",
"url": "http://blakeembrey.me"
},
"bugs": {
"url": "https://github.com/blakeembrey/array-flatten/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Flatten an array of nested arrays into a single flat array",
"devDependencies": {
"istanbul": "^0.3.13",
"mocha": "^2.2.4",
"pre-commit": "^1.0.7",
"standard": "^3.7.3"
},
"files": [
"array-flatten.js",
"LICENSE"
],
"homepage": "https://github.com/blakeembrey/array-flatten",
"keywords": [
"array",
"flatten",
"arguments",
"depth"
],
"license": "MIT",
"main": "array-flatten.js",
"name": "array-flatten",
"repository": {
"type": "git",
"url": "git://github.com/blakeembrey/array-flatten.git"
},
"scripts": {
"test": "istanbul cover _mocha -- -R spec"
},
"version": "1.1.1"
}

17
node_modules/arraybuffer.slice/.npmignore

@ -0,0 +1,17 @@
lib-cov
lcov.info
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
pids
logs
results
build
.grunt
node_modules

18
node_modules/arraybuffer.slice/LICENCE

@ -0,0 +1,18 @@
Copyright (C) 2013 Rase-
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

8
node_modules/arraybuffer.slice/Makefile

@ -0,0 +1,8 @@
REPORTER = dot
test:
@./node_modules/.bin/mocha \
--reporter $(REPORTER)
.PHONY: test

17
node_modules/arraybuffer.slice/README.md

@ -0,0 +1,17 @@
# How to
```javascript
var sliceBuffer = require('arraybuffer.slice');
var ab = (new Int8Array(5)).buffer;
var sliced = sliceBuffer(ab, 1, 3);
sliced = sliceBuffer(ab, 1);
```
# Licence (MIT)
Copyright (C) 2013 Rase-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

29
node_modules/arraybuffer.slice/index.js

@ -0,0 +1,29 @@
/**
* An abstraction for slicing an arraybuffer even when
* ArrayBuffer.prototype.slice is not supported
*
* @api public
*/
module.exports = function(arraybuffer, start, end) {
var bytes = arraybuffer.byteLength;
start = start || 0;
end = end || bytes;
if (arraybuffer.slice) { return arraybuffer.slice(start, end); }
if (start < 0) { start += bytes; }
if (end < 0) { end += bytes; }
if (end > bytes) { end = bytes; }
if (start >= bytes || start >= end || bytes === 0) {
return new ArrayBuffer(0);
}
var abv = new Uint8Array(arraybuffer);
var result = new Uint8Array(end - start);
for (var i = start, ii = 0; i < end; i++, ii++) {
result[ii] = abv[i];
}
return result.buffer;
};

44
node_modules/arraybuffer.slice/package.json

@ -0,0 +1,44 @@
{
"_from": "arraybuffer.slice@~0.0.7",
"_id": "arraybuffer.slice@0.0.7",
"_inBundle": false,
"_integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
"_location": "/arraybuffer.slice",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "arraybuffer.slice@~0.0.7",
"name": "arraybuffer.slice",
"escapedName": "arraybuffer.slice",
"rawSpec": "~0.0.7",
"saveSpec": null,
"fetchSpec": "~0.0.7"
},
"_requiredBy": [
"/engine.io-parser"
],
"_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"_shasum": "3bbc4275dd584cc1b10809b89d4e8b63a69e7675",
"_spec": "arraybuffer.slice@~0.0.7",
"_where": "/var/www/htdocs/coze/node_modules/engine.io-parser",
"bugs": {
"url": "https://github.com/rase-/arraybuffer.slice/issues"
},
"bundleDependencies": false,
"dependencies": {},
"deprecated": false,
"description": "Exports a function for slicing ArrayBuffers (no polyfilling)",
"devDependencies": {
"expect.js": "0.2.0",
"mocha": "1.17.1"
},
"homepage": "https://github.com/rase-/arraybuffer.slice",
"license": "MIT",
"name": "arraybuffer.slice",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git"
},
"version": "0.0.7"
}

227
node_modules/arraybuffer.slice/test/slice-buffer.js

@ -0,0 +1,227 @@
/*
* Test dependencies
*/
var sliceBuffer = require('../index.js');
var expect = require('expect.js');
/**
* Tests
*/
describe('sliceBuffer', function() {
describe('using standard slice', function() {
it('should slice correctly with only start provided', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 3);
var sabv = new Uint8Array(sliced);
for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with start and end provided', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 3, 8);
var sabv = new Uint8Array(sliced);
for (var i = 3, ii = 0; i < 8; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative start', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, -3);
var sabv = new Uint8Array(sliced);
for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 0, -3);
var sabv = new Uint8Array(sliced);
for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative start and end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, -6, -3);
var sabv = new Uint8Array(sliced);
for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with equal start and end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 1, 1);
expect(sliced.byteLength).to.equal(0);
});
it('should slice correctly when end larger than buffer', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 0, 100);
expect(new Uint8Array(sliced)).to.eql(abv);
});
it('shoud slice correctly when start larger than end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var sliced = sliceBuffer(abv.buffer, 6, 5);
expect(sliced.byteLength).to.equal(0);
});
});
describe('using fallback', function() {
it('should slice correctly with only start provided', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 3);
var sabv = new Uint8Array(sliced);
for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with start and end provided', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 3, 8);
var sabv = new Uint8Array(sliced);
for (var i = 3, ii = 0; i < 8; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative start', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, -3);
var sabv = new Uint8Array(sliced);
for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 0, -3);
var sabv = new Uint8Array(sliced);
for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with negative start and end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, -6, -3);
var sabv = new Uint8Array(sliced);
for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
expect(abv[i]).to.equal(sabv[ii]);
}
});
it('should slice correctly with equal start and end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 1, 1);
expect(sliced.byteLength).to.equal(0);
});
it('should slice correctly when end larger than buffer', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 0, 100);
var sabv = new Uint8Array(sliced);
for (var i = 0; i < abv.length; i++) {
expect(abv[i]).to.equal(sabv[i]);
}
});
it('shoud slice correctly when start larger than end', function() {
var abv = new Uint8Array(10);
for (var i = 0; i < abv.length; i++) {
abv[i] = i;
}
var ab = abv.buffer;
ab.slice = undefined;
var sliced = sliceBuffer(ab, 6, 5);
expect(sliced.byteLength).to.equal(0);
});
});
});

7
node_modules/async-limiter/.travis.yml

@ -0,0 +1,7 @@
language: node_js
node_js:
- "6"
- "node"
script: npm run travis
cache:
yarn: true

8
node_modules/async-limiter/LICENSE

@ -0,0 +1,8 @@
The MIT License (MIT)
Copyright (c) 2017 Samuel Reed <samuel.trace.reed@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1
node_modules/async-limiter/coverage/coverage.json

@ -0,0 +1 @@
{"/Users/samuelreed/git/forks/async-throttle/index.js":{"path":"/Users/samuelreed/git/forks/async-throttle/index.js","s":{"1":1,"2":7,"3":1,"4":6,"5":6,"6":6,"7":6,"8":6,"9":6,"10":1,"11":1,"12":3,"13":13,"14":13,"15":13,"16":1,"17":19,"18":1,"19":45,"20":6,"21":39,"22":13,"23":13,"24":13,"25":13,"26":39,"27":18,"28":6,"29":6,"30":1,"31":6,"32":6,"33":6,"34":1,"35":13,"36":13,"37":1},"b":{"1":[1,6],"2":[6,5],"3":[6,5],"4":[6,39],"5":[13,26],"6":[18,21],"7":[6,0]},"f":{"1":7,"2":3,"3":13,"4":19,"5":45,"6":6,"7":13},"fnMap":{"1":{"name":"Queue","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}}},"2":{"name":"(anonymous_2)","line":22,"loc":{"start":{"line":22,"column":24},"end":{"line":22,"column":41}}},"3":{"name":"(anonymous_3)","line":23,"loc":{"start":{"line":23,"column":28},"end":{"line":23,"column":39}}},"4":{"name":"(anonymous_4)","line":31,"loc":{"start":{"line":31,"column":7},"end":{"line":31,"column":18}}},"5":{"name":"(anonymous_5)","line":36,"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":34}}},"6":{"name":"(anonymous_6)","line":55,"loc":{"start":{"line":55,"column":25},"end":{"line":55,"column":38}}},"7":{"name":"done","line":62,"loc":{"start":{"line":62,"column":0},"end":{"line":62,"column":16}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":14,"column":1}},"2":{"start":{"line":4,"column":2},"end":{"line":6,"column":3}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":30}},"4":{"start":{"line":8,"column":2},"end":{"line":8,"column":26}},"5":{"start":{"line":9,"column":2},"end":{"line":9,"column":53}},"6":{"start":{"line":10,"column":2},"end":{"line":10,"column":19}},"7":{"start":{"line":11,"column":2},"end":{"line":11,"column":17}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":16}},"9":{"start":{"line":13,"column":2},"end":{"line":13,"column":31}},"10":{"start":{"line":16,"column":0},"end":{"line":20,"column":2}},"11":{"start":{"line":22,"column":0},"end":{"line":28,"column":3}},"12":{"start":{"line":23,"column":2},"end":{"line":27,"column":4}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":75}},"14":{"start":{"line":25,"column":4},"end":{"line":25,"column":16}},"15":{"start":{"line":26,"column":4},"end":{"line":26,"column":24}},"16":{"start":{"line":30,"column":0},"end":{"line":34,"column":3}},"17":{"start":{"line":32,"column":4},"end":{"line":32,"column":43}},"18":{"start":{"line":36,"column":0},"end":{"line":53,"column":2}},"19":{"start":{"line":37,"column":2},"end":{"line":39,"column":3}},"20":{"start":{"line":38,"column":4},"end":{"line":38,"column":11}},"21":{"start":{"line":40,"column":2},"end":{"line":45,"column":3}},"22":{"start":{"line":41,"column":4},"end":{"line":41,"column":32}},"23":{"start":{"line":42,"column":4},"end":{"line":42,"column":19}},"24":{"start":{"line":43,"column":4},"end":{"line":43,"column":20}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":16}},"26":{"start":{"line":47,"column":2},"end":{"line":52,"column":3}},"27":{"start":{"line":48,"column":4},"end":{"line":51,"column":5}},"28":{"start":{"line":49,"column":6},"end":{"line":49,"column":30}},"29":{"start":{"line":50,"column":6},"end":{"line":50,"column":27}},"30":{"start":{"line":55,"column":0},"end":{"line":60,"column":2}},"31":{"start":{"line":56,"column":2},"end":{"line":59,"column":3}},"32":{"start":{"line":57,"column":4},"end":{"line":57,"column":22}},"33":{"start":{"line":58,"column":4},"end":{"line":58,"column":16}},"34":{"start":{"line":62,"column":0},"end":{"line":65,"column":1}},"35":{"start":{"line":63,"column":2},"end":{"line":63,"column":17}},"36":{"start":{"line":64,"column":2},"end":{"line":64,"column":14}},"37":{"start":{"line":67,"column":0},"end":{"line":67,"column":23}}},"branchMap":{"1":{"line":4,"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":2}},{"start":{"line":4,"column":2},"end":{"line":4,"column":2}}]},"2":{"line":8,"type":"binary-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":19}},{"start":{"line":8,"column":23},"end":{"line":8,"column":25}}]},"3":{"line":9,"type":"binary-expr","locations":[{"start":{"line":9,"column":21},"end":{"line":9,"column":40}},{"start":{"line":9,"column":44},"end":{"line":9,"column":52}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]},"5":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":40,"column":2}},{"start":{"line":40,"column":2},"end":{"line":40,"column":2}}]},"6":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":2}},{"start":{"line":47,"column":2},"end":{"line":47,"column":2}}]},"7":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":2},"end":{"line":56,"column":2}},{"start":{"line":56,"column":2},"end":{"line":56,"column":2}}]}}}}

73
node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html

@ -0,0 +1,73 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for async-throttle/</title>
<meta charset="utf-8">
<link rel="stylesheet" href="../prettify.css">
<link rel="stylesheet" href="../base.css">
<style type='text/css'>
div.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class="header high">
<h1>Code coverage report for <span class="entity">async-throttle/</span></h1>
<h2>
Statements: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Functions: <span class="metric">100% <small>(7 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Lines: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
</h2>
<div class="path"><a href="../index.html">All files</a> &#187; async-throttle/</div>
</div>
<div class="body">
<div class="coverage-summary">
<table>
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
<td data-value="100" class="pic high"><span class="cover-fill cover-full" style="width: 100px;"></span><span class="cover-empty" style="width:0px;"></span></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="37" class="abs high">(37&nbsp;/&nbsp;37)</td>
<td data-value="92.86" class="pct high">92.86%</td>
<td data-value="14" class="abs high">(13&nbsp;/&nbsp;14)</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">(7&nbsp;/&nbsp;7)</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="37" class="abs high">(37&nbsp;/&nbsp;37)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>

246
node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html

@ -0,0 +1,246 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for async-throttle/index.js</title>
<meta charset="utf-8">
<link rel="stylesheet" href="../prettify.css">
<link rel="stylesheet" href="../base.css">
<style type='text/css'>
div.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class="header high">
<h1>Code coverage report for <span class="entity">async-throttle/index.js</span></h1>
<h2>
Statements: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Functions: <span class="metric">100% <small>(7 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Lines: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
</h2>
<div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">async-throttle/</a> &#187; index.js</div>
</div>
<div class="body">
<pre><table class="coverage">
<tr><td class="line-count">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">7</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">19</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">45</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39</span>
<span class="cline-any cline-yes">18</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-yes">13</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
&nbsp;
function Queue(options) {
if (!(this instanceof Queue)) {
return new Queue(options);
}
&nbsp;
options = options || {};
this.concurrency = options.concurrency || Infinity;
this.pending = 0;
this.jobs = [];
this.cbs = [];
this._done = done.bind(this);
}
&nbsp;
var arrayAddMethods = [
'push',
'unshift',
'splice'
];
&nbsp;
arrayAddMethods.forEach(function(method) {
Queue.prototype[method] = function() {
var methodResult = Array.prototype[method].apply(this.jobs, arguments);
this._run();
return methodResult;
};
});
&nbsp;
Object.defineProperty(Queue.prototype, 'length', {
get: function() {
return this.pending + this.jobs.length;
}
});
&nbsp;
Queue.prototype._run = function() {
if (this.pending === this.concurrency) {
return;
}
if (this.jobs.length) {
var job = this.jobs.shift();
this.pending++;
job(this._done);
this._run();
}
&nbsp;
if (this.pending === 0) {
while (this.cbs.length !== 0) {
var cb = this.cbs.pop();
process.nextTick(cb);
}
}
};
&nbsp;
Queue.prototype.onDone = function(cb) {
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof cb === 'function') {
this.cbs.push(cb);
this._run();
}
};
&nbsp;
function done() {
this.pending--;
this._run();
}
&nbsp;
module.exports = Queue;
&nbsp;</pre></td></tr>
</table></pre>
</div>
<div class="footer">
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>

182
node_modules/async-limiter/coverage/lcov-report/base.css

@ -0,0 +1,182 @@
body, html {
margin:0; padding: 0;
}
body {
font-family: Helvetica Neue, Helvetica,Arial;
font-size: 10pt;
}
div.header, div.footer {
background: #eee;
padding: 1em;
}
div.header {
z-index: 100;
position: fixed;
top: 0;
border-bottom: 1px solid #666;
width: 100%;
}
div.footer {
border-top: 1px solid #666;
}
div.body {
margin-top: 10em;
}
div.meta {
font-size: 90%;
text-align: center;
}
h1, h2, h3 {
font-weight: normal;
}
h1 {
font-size: 12pt;
}
h2 {
font-size: 10pt;
}
pre {
font-family: Consolas, Menlo, Monaco, monospace;
margin: 0;
padding: 0;
line-height: 1.3;
font-size: 14px;
-moz-tab-size: 2;
-o-tab-size: 2;
tab-size: 2;
}
div.path { font-size: 110%; }
div.path a:link, div.path a:visited { color: #000; }
table.coverage { border-collapse: collapse; margin:0; padding: 0 }
table.coverage td {
margin: 0;
padding: 0;
color: #111;
vertical-align: top;
}
table.coverage td.line-count {
width: 50px;
text-align: right;
padding-right: 5px;
}
table.coverage td.line-coverage {
color: #777 !important;
text-align: right;
border-left: 1px solid #666;
border-right: 1px solid #666;
}
table.coverage td.text {
}
table.coverage td span.cline-any {
display: inline-block;
padding: 0 5px;
width: 40px;
}
table.coverage td span.cline-neutral {
background: #eee;
}
table.coverage td span.cline-yes {
background: #b5d592;
color: #999;
}
table.coverage td span.cline-no {
background: #fc8c84;
}
.cstat-yes { color: #111; }
.cstat-no { background: #fc8c84; color: #111; }
.fstat-no { background: #ffc520; color: #111 !important; }
.cbranch-no { background: yellow !important; color: #111; }
.cstat-skip { background: #ddd; color: #111; }
.fstat-skip { background: #ddd; color: #111 !important; }
.cbranch-skip { background: #ddd !important; color: #111; }
.missing-if-branch {
display: inline-block;
margin-right: 10px;
position: relative;
padding: 0 4px;
background: black;
color: yellow;
}
.skip-if-branch {
display: none;
margin-right: 10px;
position: relative;
padding: 0 4px;
background: #ccc;
color: white;
}
.missing-if-branch .typ, .skip-if-branch .typ {
color: inherit !important;
}
.entity, .metric { font-weight: bold; }
.metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
.metric small { font-size: 80%; font-weight: normal; color: #666; }
div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
div.coverage-summary th.file { border-right: none !important; }
div.coverage-summary th.pic { border-left: none !important; text-align: right; }
div.coverage-summary th.pct { border-right: none !important; }
div.coverage-summary th.abs { border-left: none !important; text-align: right; }
div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; }
div.coverage-summary td.pic { min-width: 120px !important; }
div.coverage-summary a:link { text-decoration: none; color: #000; }
div.coverage-summary a:visited { text-decoration: none; color: #777; }
div.coverage-summary a:hover { text-decoration: underline; }
div.coverage-summary tfoot td { border-top: 1px solid #666; }
div.coverage-summary .sorter {
height: 10px;
width: 7px;
display: inline-block;
margin-left: 0.5em;
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
}
div.coverage-summary .sorted .sorter {
background-position: 0 -20px;
}
div.coverage-summary .sorted-desc .sorter {
background-position: 0 -10px;
}
.high { background: #b5d592 !important; }
.medium { background: #ffe87c !important; }
.low { background: #fc8c84 !important; }
span.cover-fill, span.cover-empty {
display:inline-block;
border:1px solid #444;
background: white;
height: 12px;
}
span.cover-fill {
background: #ccc;
border-right: 1px solid #444;
}
span.cover-empty {
background: white;
border-left: none;
}
span.cover-full {
border-right: none !important;
}
pre.prettyprint {
border: none !important;
padding: 0 !important;
margin: 0 !important;
}
.com { color: #999 !important; }
.ignore-none { color: #999; font-weight: normal; }

73
node_modules/async-limiter/coverage/lcov-report/index.html

@ -0,0 +1,73 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8">
<link rel="stylesheet" href="prettify.css">
<link rel="stylesheet" href="base.css">
<style type='text/css'>
div.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class="header high">
<h1>Code coverage report for <span class="entity">All files</span></h1>
<h2>
Statements: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Functions: <span class="metric">100% <small>(7 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Lines: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
</h2>
<div class="path"></div>
</div>
<div class="body">
<div class="coverage-summary">
<table>
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="async-throttle/"><a href="async-throttle/index.html">async-throttle/</a></td>
<td data-value="100" class="pic high"><span class="cover-fill cover-full" style="width: 100px;"></span><span class="cover-empty" style="width:0px;"></span></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="37" class="abs high">(37&nbsp;/&nbsp;37)</td>
<td data-value="92.86" class="pct high">92.86%</td>
<td data-value="14" class="abs high">(13&nbsp;/&nbsp;14)</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">(7&nbsp;/&nbsp;7)</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="37" class="abs high">(37&nbsp;/&nbsp;37)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="sorter.js"></script>
</body>
</html>

1
node_modules/async-limiter/coverage/lcov-report/prettify.css

@ -0,0 +1 @@
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}

1
node_modules/async-limiter/coverage/lcov-report/prettify.js

File diff suppressed because one or more lines are too long

BIN
node_modules/async-limiter/coverage/lcov-report/sort-arrow-sprite.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

156
node_modules/async-limiter/coverage/lcov-report/sorter.js

@ -0,0 +1,156 @@
var addSorting = (function () {
"use strict";
var cols,
currentSort = {
index: 0,
desc: false
};
// returns the summary table element
function getTable() { return document.querySelector('.coverage-summary table'); }
// returns the thead element of the summary table
function getTableHeader() { return getTable().querySelector('thead tr'); }
// returns the tbody element of the summary table
function getTableBody() { return getTable().querySelector('tbody'); }
// returns the th element for nth column
function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
// loads all columns
function loadColumns() {
var colNodes = getTableHeader().querySelectorAll('th'),
colNode,
cols = [],
col,
i;
for (i = 0; i < colNodes.length; i += 1) {
colNode = colNodes[i];
col = {
key: colNode.getAttribute('data-col'),
sortable: !colNode.getAttribute('data-nosort'),
type: colNode.getAttribute('data-type') || 'string'
};
cols.push(col);
if (col.sortable) {
col.defaultDescSort = col.type === 'number';
colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
}
}
return cols;
}
// attaches a data attribute to every tr element with an object
// of data values keyed by column name
function loadRowData(tableRow) {
var tableCols = tableRow.querySelectorAll('td'),
colNode,
col,
data = {},
i,
val;
for (i = 0; i < tableCols.length; i += 1) {
colNode = tableCols[i];
col = cols[i];
val = colNode.getAttribute('data-value');
if (col.type === 'number') {
val = Number(val);
}
data[col.key] = val;
}
return data;
}
// loads all row data
function loadData() {
var rows = getTableBody().querySelectorAll('tr'),
i;
for (i = 0; i < rows.length; i += 1) {
rows[i].data = loadRowData(rows[i]);
}
}
// sorts the table using the data for the ith column
function sortByIndex(index, desc) {
var key = cols[index].key,
sorter = function (a, b) {
a = a.data[key];
b = b.data[key];
return a < b ? -1 : a > b ? 1 : 0;
},
finalSorter = sorter,
tableBody = document.querySelector('.coverage-summary tbody'),
rowNodes = tableBody.querySelectorAll('tr'),
rows = [],
i;
if (desc) {
finalSorter = function (a, b) {
return -1 * sorter(a, b);
};
}
for (i = 0; i < rowNodes.length; i += 1) {
rows.push(rowNodes[i]);
tableBody.removeChild(rowNodes[i]);
}
rows.sort(finalSorter);
for (i = 0; i < rows.length; i += 1) {
tableBody.appendChild(rows[i]);
}
}
// removes sort indicators for current column being sorted
function removeSortIndicators() {
var col = getNthColumn(currentSort.index),
cls = col.className;
cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
col.className = cls;
}
// adds sort indicators for current column being sorted
function addSortIndicators() {
getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
}
// adds event listeners for all sorter widgets
function enableUI() {
var i,
el,
ithSorter = function ithSorter(i) {
var col = cols[i];
return function () {
var desc = col.defaultDescSort;
if (currentSort.index === i) {
desc = !currentSort.desc;
}
sortByIndex(i, desc);
removeSortIndicators();
currentSort.index = i;
currentSort.desc = desc;
addSortIndicators();
};
};
for (i =0 ; i < cols.length; i += 1) {
if (cols[i].sortable) {
el = getNthColumn(i).querySelector('.sorter');
if (el.addEventListener) {
el.addEventListener('click', ithSorter(i));
} else {
el.attachEvent('onclick', ithSorter(i));
}
}
}
}
// adds sorting functionality to the UI
return function () {
if (!getTable()) {
return;
}
cols = loadColumns();
loadData(cols);
addSortIndicators();
enableUI();
};
})();
window.addEventListener('load', addSorting);

74
node_modules/async-limiter/coverage/lcov.info

@ -0,0 +1,74 @@
TN:
SF:/Users/samuelreed/git/forks/async-throttle/index.js
FN:3,Queue
FN:22,(anonymous_2)
FN:23,(anonymous_3)
FN:31,(anonymous_4)
FN:36,(anonymous_5)
FN:55,(anonymous_6)
FN:62,done
FNF:7
FNH:7
FNDA:7,Queue
FNDA:3,(anonymous_2)
FNDA:13,(anonymous_3)
FNDA:19,(anonymous_4)
FNDA:45,(anonymous_5)
FNDA:6,(anonymous_6)
FNDA:13,done
DA:3,1
DA:4,7
DA:5,1
DA:8,6
DA:9,6
DA:10,6
DA:11,6
DA:12,6
DA:13,6
DA:16,1
DA:22,1
DA:23,3
DA:24,13
DA:25,13
DA:26,13
DA:30,1
DA:32,19
DA:36,1
DA:37,45
DA:38,6
DA:40,39
DA:41,13
DA:42,13
DA:43,13
DA:44,13
DA:47,39
DA:48,18
DA:49,6
DA:50,6
DA:55,1
DA:56,6
DA:57,6
DA:58,6
DA:62,1
DA:63,13
DA:64,13
DA:67,1
LF:37
LH:37
BRDA:4,1,0,1
BRDA:4,1,1,6
BRDA:8,2,0,6
BRDA:8,2,1,5
BRDA:9,3,0,6
BRDA:9,3,1,5
BRDA:37,4,0,6
BRDA:37,4,1,39
BRDA:40,5,0,13
BRDA:40,5,1,26
BRDA:47,6,0,18
BRDA:47,6,1,21
BRDA:56,7,0,6
BRDA:56,7,1,0
BRF:14
BRH:13
end_of_record

67
node_modules/async-limiter/index.js

@ -0,0 +1,67 @@
'use strict';
function Queue(options) {
if (!(this instanceof Queue)) {
return new Queue(options);
}
options = options || {};
this.concurrency = options.concurrency || Infinity;
this.pending = 0;
this.jobs = [];
this.cbs = [];
this._done = done.bind(this);
}
var arrayAddMethods = [
'push',
'unshift',
'splice'
];
arrayAddMethods.forEach(function(method) {
Queue.prototype[method] = function() {
var methodResult = Array.prototype[method].apply(this.jobs, arguments);
this._run();
return methodResult;
};
});
Object.defineProperty(Queue.prototype, 'length', {
get: function() {
return this.pending + this.jobs.length;
}
});
Queue.prototype._run = function() {
if (this.pending === this.concurrency) {
return;
}
if (this.jobs.length) {
var job = this.jobs.shift();
this.pending++;
job(this._done);
this._run();
}
if (this.pending === 0) {
while (this.cbs.length !== 0) {
var cb = this.cbs.pop();
process.nextTick(cb);
}
}
};
Queue.prototype.onDone = function(cb) {
if (typeof cb === 'function') {
this.cbs.push(cb);
this._run();
}
};
function done() {
this.pending--;
this._run();
}
module.exports = Queue;

69
node_modules/async-limiter/package.json

@ -0,0 +1,69 @@
{
"_from": "async-limiter@~1.0.0",
"_id": "async-limiter@1.0.0",
"_inBundle": false,
"_integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
"_location": "/async-limiter",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "async-limiter@~1.0.0",
"name": "async-limiter",
"escapedName": "async-limiter",
"rawSpec": "~1.0.0",
"saveSpec": null,
"fetchSpec": "~1.0.0"
},
"_requiredBy": [
"/ws"
],
"_resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
"_shasum": "78faed8c3d074ab81f22b4e985d79e8738f720f8",
"_spec": "async-limiter@~1.0.0",
"_where": "/var/www/htdocs/coze/node_modules/ws",
"author": {
"name": "Samuel Reed"
},
"bugs": {
"url": "https://github.com/strml/async-limiter/issues"
},
"bundleDependencies": false,
"dependencies": {},
"deprecated": false,
"description": "asynchronous function queue with adjustable concurrency",
"devDependencies": {
"coveralls": "^2.11.2",
"eslint": "^4.6.1",
"eslint-plugin-mocha": "^4.11.0",
"intelli-espower-loader": "^1.0.1",
"istanbul": "^0.3.2",
"mocha": "^3.5.2",
"power-assert": "^1.4.4"
},
"homepage": "https://github.com/strml/async-limiter#readme",
"keywords": [
"throttle",
"async",
"limiter",
"asynchronous",
"job",
"task",
"concurrency",
"concurrent"
],
"license": "MIT",
"name": "async-limiter",
"repository": {
"type": "git",
"url": "git+https://github.com/strml/async-limiter.git"
},
"scripts": {
"coverage": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | coveralls",
"example": "node example",
"lint": "eslint .",
"test": "mocha --R intelli-espower-loader test/",
"travis": "npm run lint && npm run coverage"
},
"version": "1.0.0"
}

132
node_modules/async-limiter/readme.md

@ -0,0 +1,132 @@
# Async-Limiter
A module for limiting concurrent asynchronous actions in flight. Forked from [queue](https://github.com/jessetane/queue).
[![npm](http://img.shields.io/npm/v/async-limiter.svg?style=flat-square)](http://www.npmjs.org/async-limiter)
[![tests](https://img.shields.io/travis/STRML/async-limiter.svg?style=flat-square&branch=master)](https://travis-ci.org/STRML/async-limiter)
[![coverage](https://img.shields.io/coveralls/STRML/async-limiter.svg?style=flat-square&branch=master)](https://coveralls.io/r/STRML/async-limiter)
This module exports a class `Limiter` that implements some of the `Array` API.
Pass async functions (ones that accept a callback or return a promise) to an instance's additive array methods.
## Motivation
Certain functions, like `zlib`, have [undesirable behavior](https://github.com/nodejs/node/issues/8871#issuecomment-250915913) when
run at infinite concurrency.
In this case, it is actually faster, and takes far less memory, to limit concurrency.
This module should do the absolute minimum work necessary to queue up functions. PRs are welcome that would
make this module faster or lighter, but new functionality is not desired.
Style should confirm to nodejs/node style.
## Example
``` javascript
var Limiter = require('async-limiter')
var t = new Limiter({concurrency: 2});
var results = []
// add jobs using the familiar Array API
t.push(function (cb) {
results.push('two')
cb()
})
t.push(
function (cb) {
results.push('four')
cb()
},
function (cb) {
results.push('five')
cb()
}
)
t.unshift(function (cb) {
results.push('one')
cb()
})
t.splice(2, 0, function (cb) {
results.push('three')
cb()
})
// Jobs run automatically. If you want a callback when all are done,
// call 'onDone()'.
t.onDone(function () {
console.log('all done:', results)
})
```
## Zlib Example
```js
const zlib = require('zlib');
const Limiter = require('async-limiter');
const message = {some: "data"};
const payload = new Buffer(JSON.stringify(message));
// Try with different concurrency values to see how this actually
// slows significantly with higher concurrency!
//
// 5: 1398.607ms
// 10: 1375.668ms
// Infinity: 4423.300ms
//
const t = new Limiter({concurrency: 5});
function deflate(payload, cb) {
t.push(function(done) {
zlib.deflate(payload, function(err, buffer) {
done();
cb(err, buffer);
});
});
}
console.time('deflate');
for(let i = 0; i < 30000; ++i) {
deflate(payload, function (err, buffer) {});
}
q.onDone(function() {
console.timeEnd('deflate');
});
```
## Install
`npm install async-limiter`
## Test
`npm test`
## API
### `var t = new Limiter([opts])`
Constructor. `opts` may contain inital values for:
* `q.concurrency`
## Instance methods
### `q.onDone(fn)`
`fn` will be called once and only once, when the queue is empty.
## Instance methods mixed in from `Array`
Mozilla has docs on how these methods work [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array).
### `q.push(element1, ..., elementN)`
### `q.unshift(element1, ..., elementN)`
### `q.splice(index , howMany[, element1[, ...[, elementN]]])`
## Properties
### `q.concurrency`
Max number of jobs the queue should process concurrently, defaults to `Infinity`.
### `q.length`
Jobs pending + jobs to process (readonly).

1
node_modules/backo2/.npmignore

@ -0,0 +1 @@
node_modules/

12
node_modules/backo2/History.md

@ -0,0 +1,12 @@
1.0.1 / 2014-02-17
==================
* go away decimal point
* history
1.0.0 / 2014-02-17
==================
* add jitter option
* Initial commit

8
node_modules/backo2/Makefile

@ -0,0 +1,8 @@
test:
@./node_modules/.bin/mocha \
--require should \
--reporter dot \
--bail
.PHONY: test

34
node_modules/backo2/Readme.md

@ -0,0 +1,34 @@
# backo
Simple exponential backoff because the others seem to have weird abstractions.
## Installation
```
$ npm install backo
```
## Options
- `min` initial timeout in milliseconds [100]
- `max` max timeout [10000]
- `jitter` [0]
- `factor` [2]
## Example
```js
var Backoff = require('backo');
var backoff = new Backoff({ min: 100, max: 20000 });
setTimeout(function(){
something.reconnect();
}, backoff.duration());
// later when something works
backoff.reset()
```
# License
MIT

11
node_modules/backo2/component.json

@ -0,0 +1,11 @@
{
"name": "backo",
"repo": "segmentio/backo",
"dependencies": {},
"version": "1.0.1",
"description": "simple backoff without the weird abstractions",
"keywords": ["backoff"],
"license": "MIT",
"scripts": ["index.js"],
"main": "index.js"
}

85
node_modules/backo2/index.js

@ -0,0 +1,85 @@
/**
* Expose `Backoff`.
*/
module.exports = Backoff;
/**
* Initialize backoff timer with `opts`.
*
* - `min` initial timeout in milliseconds [100]
* - `max` max timeout [10000]
* - `jitter` [0]
* - `factor` [2]
*
* @param {Object} opts
* @api public
*/
function Backoff(opts) {
opts = opts || {};
this.ms = opts.min || 100;
this.max = opts.max || 10000;
this.factor = opts.factor || 2;
this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
this.attempts = 0;
}
/**
* Return the backoff duration.
*
* @return {Number}
* @api public
*/
Backoff.prototype.duration = function(){
var ms = this.ms * Math.pow(this.factor, this.attempts++);
if (this.jitter) {
var rand = Math.random();
var deviation = Math.floor(rand * this.jitter * ms);
ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;
}
return Math.min(ms, this.max) | 0;
};
/**
* Reset the number of attempts.
*
* @api public
*/
Backoff.prototype.reset = function(){
this.attempts = 0;
};
/**
* Set the minimum duration
*
* @api public
*/
Backoff.prototype.setMin = function(min){
this.ms = min;
};
/**
* Set the maximum duration
*
* @api public
*/
Backoff.prototype.setMax = function(max){
this.max = max;
};
/**
* Set the jitter
*
* @api public
*/
Backoff.prototype.setJitter = function(jitter){
this.jitter = jitter;
};

47
node_modules/backo2/package.json

@ -0,0 +1,47 @@
{
"_from": "backo2@1.0.2",
"_id": "backo2@1.0.2",
"_inBundle": false,
"_integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
"_location": "/backo2",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "backo2@1.0.2",
"name": "backo2",
"escapedName": "backo2",
"rawSpec": "1.0.2",
"saveSpec": null,
"fetchSpec": "1.0.2"
},
"_requiredBy": [
"/socket.io-client"
],
"_resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
"_shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947",
"_spec": "backo2@1.0.2",
"_where": "/var/www/htdocs/coze/node_modules/socket.io-client",
"bugs": {
"url": "https://github.com/mokesmokes/backo/issues"
},
"bundleDependencies": false,
"dependencies": {},
"deprecated": false,
"description": "simple backoff based on segmentio/backo",
"devDependencies": {
"mocha": "*",
"should": "*"
},
"homepage": "https://github.com/mokesmokes/backo#readme",
"keywords": [
"backoff"
],
"license": "MIT",
"name": "backo2",
"repository": {
"type": "git",
"url": "git+https://github.com/mokesmokes/backo.git"
},
"version": "1.0.2"
}

18
node_modules/backo2/test/index.js

@ -0,0 +1,18 @@
var Backoff = require('..');
var assert = require('assert');
describe('.duration()', function(){
it('should increase the backoff', function(){
var b = new Backoff;
assert(100 == b.duration());
assert(200 == b.duration());
assert(400 == b.duration());
assert(800 == b.duration());
b.reset();
assert(100 == b.duration());
assert(200 == b.duration());
})
})

3
node_modules/base64-arraybuffer/.npmignore

@ -0,0 +1,3 @@
/node_modules/
Gruntfile.js
/test/

19
node_modules/base64-arraybuffer/.travis.yml

@ -0,0 +1,19 @@
language: node_js
node_js:
- '0.12'
- iojs-1
- iojs-2
- iojs-3
- '4.1'
before_script:
- npm install
before_install: npm install -g npm@'>=2.13.5'
deploy:
provider: npm
email: niklasvh@gmail.com
api_key:
secure: oHV9ArprTj5WOk7MP1UF7QMJ70huXw+y7xXb5wF4+V2H8Hyfa5TfE0DiOmqrube1WXTeH1FLgq54shp/sJWi47Hkg/GyeoB5NnsPhYEaJkaON9UG5blML+ODiNVsEnq/1kNBQ8e0+0JItMPLGySKyFmuZ3yflulXKS8O88mfINo=
on:
tags: true
branch: master
repo: niklasvh/base64-arraybuffer

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save