magaya-cai-number-honduras 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yaml +37 -0
- package/.vscode/launch.json +18 -0
- package/.whitesource +30 -0
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/combined.log +0 -0
- package/error.log +0 -0
- package/extension.config.json +58 -0
- package/index.js +220 -0
- package/package.json +56 -0
- package/src/integration/helpers/dbHelper.js +12 -0
- package/src/integration/helpers/initilize.js +111 -0
- package/src/integration/index.js +1053 -0
- package/src/integration/jobs/creditmemo.js +155 -0
- package/src/integration/jobs/debitnote.js +155 -0
- package/src/integration/jobs/invoices.js +176 -0
- package/src/integration/jobs/transactionlog.js +65 -0
- package/src/util/db/db.js +62 -0
- package/src/util/email/email.js +75 -0
- package/src/util/email/index.js +124 -0
- package/src/util/email/logo/logo.jpg +0 -0
- package/src/util/email/settingsEmail.js +33 -0
- package/src/util/files/uploadHelper.js +11 -0
- package/src/util/gateway.js +23 -0
- package/src/util/setting.js +25 -0
- package/static/assets/img/honduras-flag-icon.svg +214 -0
- package/static/fa-brands-400.eot +0 -0
- package/static/fa-brands-400.svg +1100 -0
- package/static/fa-brands-400.ttf +0 -0
- package/static/fa-brands-400.woff +0 -0
- package/static/fa-brands-400.woff2 +0 -0
- package/static/fa-regular-400.eot +0 -0
- package/static/fa-regular-400.svg +368 -0
- package/static/fa-regular-400.ttf +0 -0
- package/static/fa-regular-400.woff +0 -0
- package/static/fa-regular-400.woff2 +0 -0
- package/static/fa-solid-900.eot +0 -0
- package/static/fa-solid-900.svg +1892 -0
- package/static/fa-solid-900.ttf +0 -0
- package/static/fa-solid-900.woff +0 -0
- package/static/fa-solid-900.woff2 +0 -0
- package/static/favicon.ico +0 -0
- package/static/index.html +21 -0
- package/static/main.js +2436 -0
- package/static/main.js.map +1 -0
- package/static/polyfills.js +5793 -0
- package/static/polyfills.js.map +1 -0
- package/static/runtime.js +154 -0
- package/static/runtime.js.map +1 -0
- package/static/scripts.js +18 -0
- package/static/scripts.js.map +1 -0
- package/static/styles.js +776 -0
- package/static/styles.js.map +1 -0
- package/static/vendor.js +98718 -0
- package/static/vendor.js.map +1 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const nodemailer = require('nodemailer');
|
|
2
|
+
const util = require('util');
|
|
3
|
+
|
|
4
|
+
async function sendEmail(config, subject, body, attachments = []) {
|
|
5
|
+
|
|
6
|
+
let transParams = {
|
|
7
|
+
host: config.server,
|
|
8
|
+
port: config.port
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
if (config.credentials) {
|
|
12
|
+
transParams.auth = {
|
|
13
|
+
user: config.username,
|
|
14
|
+
pass: config.password
|
|
15
|
+
};
|
|
16
|
+
if (config.tslSSL) {
|
|
17
|
+
if (config.port === 465) //true for 465, false for other ports (gmail , zoho)
|
|
18
|
+
transParams.secure = true;
|
|
19
|
+
else {
|
|
20
|
+
transParams.secureConnection = false;
|
|
21
|
+
transParams.tls = {
|
|
22
|
+
ciphers: 'SSLv3'
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
transParams.tls = {
|
|
29
|
+
rejectUnauthorized: false
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var transporter = nodemailer.createTransport(transParams);
|
|
34
|
+
// var SendMail = util.promisify(transporter.sendMail);
|
|
35
|
+
if (config.feedbackToMagaya) {
|
|
36
|
+
if (config.feedbackToMagaya) {
|
|
37
|
+
var mailToMagayaOptions = {
|
|
38
|
+
from: config.credentials ? `donotreply@magaya.com` : `donotreply@magaya.com`,
|
|
39
|
+
to: (config.magayaContact) ? config.magayaContact : (config.magayaContacts ? config.magayaContacts : ""),
|
|
40
|
+
subject: subject,
|
|
41
|
+
text: body,
|
|
42
|
+
attachments: attachments
|
|
43
|
+
};
|
|
44
|
+
console.log(mailToMagayaOptions);
|
|
45
|
+
transporter.sendMail(mailToMagayaOptions, function (error, info) {
|
|
46
|
+
if (error) {
|
|
47
|
+
console.log('Email to Magaya error: ' + error.message);
|
|
48
|
+
} else {
|
|
49
|
+
console.log('Email to Magaya sent: ' + info.response);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
// await SendMail(mailToMagayaOptions);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (config.sendEmailsToCustomers) {
|
|
56
|
+
var mailOptions = {
|
|
57
|
+
from: config.credentials ? `${config.username}@magaya.com` : `donotreply@magaya.com`,
|
|
58
|
+
to: config.customerEmails,
|
|
59
|
+
subject: subject,
|
|
60
|
+
text: body,
|
|
61
|
+
attachments: attachments
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// return await SendMail(mailOptions);
|
|
65
|
+
transporter.sendMail(mailOptions, function (error, info) {
|
|
66
|
+
if (error) {
|
|
67
|
+
console.log('Email gmail error: ' + error.message);
|
|
68
|
+
} else {
|
|
69
|
+
console.log('Email gmail sent: ' + info.response);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports.sendEmail = sendEmail;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
var express = require('express');
|
|
2
|
+
var router = express.Router();
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const settingEmail = require('./settingsEmail');
|
|
5
|
+
const sqliteDB = require('../db/db');
|
|
6
|
+
|
|
7
|
+
var db;
|
|
8
|
+
|
|
9
|
+
router.post('/config', async function (req, res) {
|
|
10
|
+
var config = req.body.emailConfig;
|
|
11
|
+
|
|
12
|
+
if (!db)
|
|
13
|
+
db = await sqliteDB.createConnection();
|
|
14
|
+
|
|
15
|
+
let queryCdm = `SELECT count(username) as total FROM email_settings
|
|
16
|
+
WHERE (server = '${config.server}' AND
|
|
17
|
+
username = '${config.username}' AND
|
|
18
|
+
port = '${config.port}')`;
|
|
19
|
+
|
|
20
|
+
var rows = await sqliteDB.queryDBAll(db, queryCdm);
|
|
21
|
+
if (!rows || !rows[0].total > 0) {
|
|
22
|
+
var result = await db.run(`UPDATE email_settings SET active = 0, deleted = 1 WHERE active = 1`);
|
|
23
|
+
var result = await db.run(`INSERT INTO email_settings(server,
|
|
24
|
+
username,
|
|
25
|
+
password,
|
|
26
|
+
port,
|
|
27
|
+
customerEmails,
|
|
28
|
+
magayaContacts,
|
|
29
|
+
feedbackToMagaya,
|
|
30
|
+
sendEmailsToCustomers,
|
|
31
|
+
tslSSL,
|
|
32
|
+
credentials,
|
|
33
|
+
active,
|
|
34
|
+
deleted)
|
|
35
|
+
VALUES(?,?,?,?,?,?,?,?,?,?,?,?)`,
|
|
36
|
+
[
|
|
37
|
+
config.server,
|
|
38
|
+
config.username,
|
|
39
|
+
config.password,
|
|
40
|
+
config.port,
|
|
41
|
+
config.customerEmails,
|
|
42
|
+
config.magayaContacts,
|
|
43
|
+
config.feedbackToMagaya,
|
|
44
|
+
config.sendEmailsToCustomers,
|
|
45
|
+
config.tslSSL,
|
|
46
|
+
config.credentials,
|
|
47
|
+
1,
|
|
48
|
+
0
|
|
49
|
+
]);
|
|
50
|
+
} else {
|
|
51
|
+
var result = await db.run(`UPDATE email_settings SET active = 0, deleted = 1 WHERE active = 1`);
|
|
52
|
+
let updateSQL = `UPDATE email_settings
|
|
53
|
+
SET password = '${config.password}',
|
|
54
|
+
customerEmails = '${config.customerEmails}',
|
|
55
|
+
magayaContacts = '${config.magayaContacts}',
|
|
56
|
+
feedbackToMagaya = '${config.feedbackToMagaya}',
|
|
57
|
+
sendEmailsToCustomers = '${config.sendEmailsToCustomers}',
|
|
58
|
+
tslSSL = '${config.tslSSL}',
|
|
59
|
+
credentials = '${config.credentials}',
|
|
60
|
+
active = 1,
|
|
61
|
+
deletec = 0
|
|
62
|
+
WHERE server = '${config.server}' AND
|
|
63
|
+
username = '${config.username}' AND
|
|
64
|
+
port = '${config.port}'`;
|
|
65
|
+
var result = await db.run(updateSQL);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var data = JSON.stringify(config);
|
|
69
|
+
try {
|
|
70
|
+
settingEmail.saveConfig(data);
|
|
71
|
+
res.json(true);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
let date = new Date();
|
|
74
|
+
console.log(date.getTime(), error);
|
|
75
|
+
res.json(false);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
});
|
|
79
|
+
router.get('/config', async function (req, res) {
|
|
80
|
+
try {
|
|
81
|
+
if (!db)
|
|
82
|
+
db = await sqliteDB.createConnection();
|
|
83
|
+
|
|
84
|
+
let queryCdm = `SELECT * FROM email_settings
|
|
85
|
+
WHERE active = 1`;
|
|
86
|
+
|
|
87
|
+
var rows = await sqliteDB.queryDBAll(db, queryCdm);
|
|
88
|
+
|
|
89
|
+
if (rows) {
|
|
90
|
+
res.json(rows[0]);
|
|
91
|
+
} else {
|
|
92
|
+
res.json(false);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// var config = settingEmail.getConfig();
|
|
96
|
+
// res.json(config);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
let date = new Date();
|
|
99
|
+
console.log(date.getTime(), error);
|
|
100
|
+
res.json(false);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
router.post('/test', function (req, res) {
|
|
105
|
+
var config = req.body.emailConfig;
|
|
106
|
+
try {
|
|
107
|
+
const email = require('./email')
|
|
108
|
+
var attachments = [{
|
|
109
|
+
filename: 'Magaya.jpg',
|
|
110
|
+
content: fs.readFileSync(__dirname + '/logo/logo.jpg')
|
|
111
|
+
}];
|
|
112
|
+
email.sendEmail(config, 'Test email', 'This is an email for testing email notification in extensions\r\t\r\tRegards Magaya Implementations Engineers Team', attachments)
|
|
113
|
+
.then(result => {
|
|
114
|
+
res.json(true);
|
|
115
|
+
});
|
|
116
|
+
} catch (error) {
|
|
117
|
+
let date = new Date();
|
|
118
|
+
console.log(date.getTime(), error);
|
|
119
|
+
res.json(false);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
module.exports = router;
|
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const util = require('util');
|
|
4
|
+
const crypto = require('crypto');
|
|
5
|
+
const algorithm = 'aes-256-cbc';
|
|
6
|
+
const key = 'M6F3Efeq';
|
|
7
|
+
|
|
8
|
+
// require the config helper
|
|
9
|
+
const fsHelper = require('@magaya/extension-fs-helper');
|
|
10
|
+
|
|
11
|
+
const configFolder = fsHelper.GetExtensionDataFolder({
|
|
12
|
+
"company": "magaya",
|
|
13
|
+
"name": "cai"
|
|
14
|
+
}, process.networkId);
|
|
15
|
+
|
|
16
|
+
module.exports = {
|
|
17
|
+
getConfig: function () {
|
|
18
|
+
if (!fs.existsSync(path.join(configFolder, 'email.dat'))) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
var data = fs.readFileSync(path.join(configFolder, 'email.dat'));
|
|
22
|
+
var decipher = crypto.createDecipher(algorithm, key);
|
|
23
|
+
var decrypted = Buffer.concat([decipher.update(data), decipher.final()]);
|
|
24
|
+
var config = JSON.parse(decrypted.toString());
|
|
25
|
+
return JSON.parse(config);
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
saveConfig: function (data) {
|
|
29
|
+
var cipher = crypto.createCipher(algorithm, key);
|
|
30
|
+
var encrypted = Buffer.concat([cipher.update(new Buffer(JSON.stringify(data), "utf8")), cipher.final()]);
|
|
31
|
+
fs.writeFileSync(path.join(configFolder, 'email.dat'), encrypted);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var multer = require('multer');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module.exports.uploadKey = async function (fileName) {
|
|
6
|
+
var keyUploadPath = 'keys';
|
|
7
|
+
if (!fs.existsSync(keyUploadPath)) {
|
|
8
|
+
fs.mkdirSync(keyUploadPath);
|
|
9
|
+
}
|
|
10
|
+
var upload = multer({ dest: keyUploadPath }).single(fileName)
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const sockets = require("@magaya/socket-tunnel-node");
|
|
2
|
+
|
|
3
|
+
module.exports = (options, gateway) => {
|
|
4
|
+
sockets(
|
|
5
|
+
{
|
|
6
|
+
server: "https://appgw.magaya.net/",
|
|
7
|
+
app: "cai", //extension name to register in Magaya gateway
|
|
8
|
+
groupId: options.networkId,
|
|
9
|
+
root: `http://localhost:${options.port}${gateway}`,
|
|
10
|
+
retryStrategy: {
|
|
11
|
+
maxRetries: 3,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
(error, socket) => {
|
|
15
|
+
if (error) {
|
|
16
|
+
console.log(error.message);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
console.log(`${new Date().toLocaleString()} | [INFO][Gateway]Gateway enabled...`);
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const util = require('util');
|
|
4
|
+
const crypto = require('crypto');
|
|
5
|
+
const algorithm = 'aes-256-cbc';
|
|
6
|
+
const key = 'M6F3Efeq';
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
getConfig: function (filename) {
|
|
10
|
+
if (!fs.existsSync(filename)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
var data = fs.readFileSync(filename);
|
|
14
|
+
var decipher = crypto.createDecipher(algorithm, key);
|
|
15
|
+
var decrypted = Buffer.concat([decipher.update(data), decipher.final()]);
|
|
16
|
+
var setting = JSON.parse(decrypted.toString());
|
|
17
|
+
return setting;
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
saveConfig: function (data, filename) {
|
|
21
|
+
var cipher = crypto.createCipher(algorithm, key);
|
|
22
|
+
var encrypted = Buffer.concat([cipher.update(new Buffer(JSON.stringify(data), "utf8")), cipher.final()]);
|
|
23
|
+
fs.writeFileSync(filename, encrypted);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="39" height="39" viewBox="0 0 39 39">
|
|
2
|
+
<g id="Symbol_3_1" data-name="Symbol 3 – 1" transform="translate(-941 -521)">
|
|
3
|
+
<circle id="Ellipse_5" data-name="Ellipse 5" cx="19.5" cy="19.5" r="19.5" transform="translate(941 521)" fill="#fff"/>
|
|
4
|
+
<path id="Subtraction_1" data-name="Subtraction 1" d="M16.228,34.66a17.02,17.02,0,0,1-9.82-3.1A17.285,17.285,0,0,1,.189,23.619H32.266a17.286,17.286,0,0,1-6.219,7.944A17.02,17.02,0,0,1,16.228,34.66ZM32.455,11.552H0a17.266,17.266,0,0,1,6.19-8.3,17.114,17.114,0,0,1,20.074,0,17.265,17.265,0,0,1,6.19,8.3Z" transform="translate(944.519 523.489)" fill="#0073cf" stroke="rgba(0,0,0,0)" stroke-width="1"/>
|
|
5
|
+
<g id="star" transform="translate(957.9 538.846)">
|
|
6
|
+
<g id="cone" transform="translate(1.273)">
|
|
7
|
+
<path id="triangle" d="M492.029,222.222l-.613,1.886.943.306Z" transform="translate(-491.416 -222.222)" fill="#0073cf"/>
|
|
8
|
+
<g id="use12" transform="translate(0.283)">
|
|
9
|
+
<path id="Path_551" data-name="Path 551" d="M495.7,222.222l.613,1.886-.943.306Z" transform="translate(-495.375 -222.222)" fill="#0073cf"/>
|
|
10
|
+
</g>
|
|
11
|
+
</g>
|
|
12
|
+
<g id="use14" transform="translate(1.585 1.37)">
|
|
13
|
+
<g id="Group_496" data-name="Group 496">
|
|
14
|
+
<path id="Path_552" data-name="Path 552" d="M500.623,241.416h-1.983v.991Z" transform="translate(-498.436 -241.416)" fill="#0073cf"/>
|
|
15
|
+
<g id="Group_495" data-name="Group 495">
|
|
16
|
+
<path id="Path_553" data-name="Path 553" d="M497.969,241.416l-1.6,1.166-.583-.8Z" transform="translate(-495.782 -241.416)" fill="#0073cf"/>
|
|
17
|
+
</g>
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
<g id="use16" transform="translate(0 1.37)">
|
|
21
|
+
<g id="Group_498" data-name="Group 498">
|
|
22
|
+
<path id="Path_554" data-name="Path 554" d="M473.582,241.416l1.6,1.166.583-.8Z" transform="translate(-473.582 -241.416)" fill="#0073cf"/>
|
|
23
|
+
<g id="Group_497" data-name="Group 497">
|
|
24
|
+
<path id="Path_555" data-name="Path 555" d="M473.582,241.416h1.983v.991Z" transform="translate(-473.582 -241.416)" fill="#0073cf"/>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
<g id="use18" transform="translate(1.447 1.62)">
|
|
29
|
+
<g id="Group_500" data-name="Group 500">
|
|
30
|
+
<path id="Path_556" data-name="Path 556" d="M496.09,247.94l-.613-1.886-.943.306Z" transform="translate(-494.486 -245.973)" fill="#0073cf"/>
|
|
31
|
+
<g id="Group_499" data-name="Group 499">
|
|
32
|
+
<path id="Path_557" data-name="Path 557" d="M495.459,246.877l-1.6-1.166.583-.8Z" transform="translate(-493.855 -244.909)" fill="#0073cf"/>
|
|
33
|
+
</g>
|
|
34
|
+
</g>
|
|
35
|
+
</g>
|
|
36
|
+
<g id="use20" transform="translate(0.72 1.62)">
|
|
37
|
+
<g id="Group_502" data-name="Group 502">
|
|
38
|
+
<path id="Path_558" data-name="Path 558" d="M483.673,246.877l1.6-1.166-.583-.8Z" transform="translate(-483.673 -244.909)" fill="#0073cf"/>
|
|
39
|
+
<g id="Group_501" data-name="Group 501" transform="translate(0 0.082)">
|
|
40
|
+
<path id="Path_559" data-name="Path 559" d="M483.673,247.94l.613-1.886.943.306Z" transform="translate(-483.673 -246.054)" fill="#0073cf"/>
|
|
41
|
+
</g>
|
|
42
|
+
</g>
|
|
43
|
+
</g>
|
|
44
|
+
</g>
|
|
45
|
+
<g id="Group_518" data-name="Group 518" transform="translate(967.815 535.673)">
|
|
46
|
+
<g id="Group_517" data-name="Group 517">
|
|
47
|
+
<g id="Group_504" data-name="Group 504" transform="translate(1.273)">
|
|
48
|
+
<path id="Path_560" data-name="Path 560" d="M630.918,177.778l-.613,1.886.943.306Z" transform="translate(-630.305 -177.778)" fill="#0073cf"/>
|
|
49
|
+
<g id="Group_503" data-name="Group 503" transform="translate(0.283)">
|
|
50
|
+
<path id="Path_561" data-name="Path 561" d="M634.594,177.778l.613,1.886-.943.306Z" transform="translate(-634.263 -177.778)" fill="#0073cf"/>
|
|
51
|
+
</g>
|
|
52
|
+
</g>
|
|
53
|
+
<g id="Group_507" data-name="Group 507" transform="translate(1.585 1.37)">
|
|
54
|
+
<g id="Group_506" data-name="Group 506">
|
|
55
|
+
<path id="Path_562" data-name="Path 562" d="M639.512,196.972h-1.983v.991Z" transform="translate(-637.325 -196.972)" fill="#0073cf"/>
|
|
56
|
+
<g id="Group_505" data-name="Group 505">
|
|
57
|
+
<path id="Path_563" data-name="Path 563" d="M636.858,196.972l-1.6,1.166-.583-.8Z" transform="translate(-634.671 -196.972)" fill="#0073cf"/>
|
|
58
|
+
</g>
|
|
59
|
+
</g>
|
|
60
|
+
</g>
|
|
61
|
+
<g id="Group_510" data-name="Group 510" transform="translate(0 1.37)">
|
|
62
|
+
<g id="Group_509" data-name="Group 509">
|
|
63
|
+
<path id="Path_564" data-name="Path 564" d="M612.471,196.972l1.6,1.166.583-.8Z" transform="translate(-612.471 -196.972)" fill="#0073cf"/>
|
|
64
|
+
<g id="Group_508" data-name="Group 508">
|
|
65
|
+
<path id="Path_565" data-name="Path 565" d="M612.471,196.972h1.983v.991Z" transform="translate(-612.471 -196.972)" fill="#0073cf"/>
|
|
66
|
+
</g>
|
|
67
|
+
</g>
|
|
68
|
+
</g>
|
|
69
|
+
<g id="Group_513" data-name="Group 513" transform="translate(1.447 1.62)">
|
|
70
|
+
<g id="Group_512" data-name="Group 512">
|
|
71
|
+
<path id="Path_566" data-name="Path 566" d="M634.979,203.5l-.613-1.886-.943.306Z" transform="translate(-633.375 -201.528)" fill="#0073cf"/>
|
|
72
|
+
<g id="Group_511" data-name="Group 511">
|
|
73
|
+
<path id="Path_567" data-name="Path 567" d="M634.348,202.432l-1.6-1.166.583-.8Z" transform="translate(-632.744 -200.465)" fill="#0073cf"/>
|
|
74
|
+
</g>
|
|
75
|
+
</g>
|
|
76
|
+
</g>
|
|
77
|
+
<g id="Group_516" data-name="Group 516" transform="translate(0.72 1.62)">
|
|
78
|
+
<g id="Group_515" data-name="Group 515">
|
|
79
|
+
<path id="Path_568" data-name="Path 568" d="M622.562,202.432l1.6-1.166-.583-.8Z" transform="translate(-622.562 -200.465)" fill="#0073cf"/>
|
|
80
|
+
<g id="Group_514" data-name="Group 514" transform="translate(0 0.082)">
|
|
81
|
+
<path id="Path_569" data-name="Path 569" d="M622.562,203.5l.613-1.886.943.306Z" transform="translate(-622.562 -201.61)" fill="#0073cf"/>
|
|
82
|
+
</g>
|
|
83
|
+
</g>
|
|
84
|
+
</g>
|
|
85
|
+
</g>
|
|
86
|
+
</g>
|
|
87
|
+
<g id="Group_534" data-name="Group 534" transform="translate(967.815 541.622)">
|
|
88
|
+
<g id="Group_533" data-name="Group 533">
|
|
89
|
+
<g id="Group_520" data-name="Group 520" transform="translate(1.273)">
|
|
90
|
+
<path id="Path_570" data-name="Path 570" d="M630.918,261.111,630.3,263l.943.306Z" transform="translate(-630.305 -261.111)" fill="#0073cf"/>
|
|
91
|
+
<g id="Group_519" data-name="Group 519" transform="translate(0.283)">
|
|
92
|
+
<path id="Path_571" data-name="Path 571" d="M634.594,261.111l.613,1.886-.943.306Z" transform="translate(-634.263 -261.111)" fill="#0073cf"/>
|
|
93
|
+
</g>
|
|
94
|
+
</g>
|
|
95
|
+
<g id="Group_523" data-name="Group 523" transform="translate(1.585 1.37)">
|
|
96
|
+
<g id="Group_522" data-name="Group 522">
|
|
97
|
+
<path id="Path_572" data-name="Path 572" d="M639.512,280.305h-1.983v.992Z" transform="translate(-637.325 -280.305)" fill="#0073cf"/>
|
|
98
|
+
<g id="Group_521" data-name="Group 521">
|
|
99
|
+
<path id="Path_573" data-name="Path 573" d="M636.858,280.305l-1.6,1.166-.583-.8Z" transform="translate(-634.671 -280.305)" fill="#0073cf"/>
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
</g>
|
|
103
|
+
<g id="Group_526" data-name="Group 526" transform="translate(0 1.37)">
|
|
104
|
+
<g id="Group_525" data-name="Group 525">
|
|
105
|
+
<path id="Path_574" data-name="Path 574" d="M612.471,280.305l1.6,1.166.583-.8Z" transform="translate(-612.471 -280.305)" fill="#0073cf"/>
|
|
106
|
+
<g id="Group_524" data-name="Group 524">
|
|
107
|
+
<path id="Path_575" data-name="Path 575" d="M612.471,280.305h1.983v.992Z" transform="translate(-612.471 -280.305)" fill="#0073cf"/>
|
|
108
|
+
</g>
|
|
109
|
+
</g>
|
|
110
|
+
</g>
|
|
111
|
+
<g id="Group_529" data-name="Group 529" transform="translate(1.447 1.62)">
|
|
112
|
+
<g id="Group_528" data-name="Group 528">
|
|
113
|
+
<path id="Path_576" data-name="Path 576" d="M634.979,286.829l-.613-1.886-.943.306Z" transform="translate(-633.375 -284.862)" fill="#0073cf"/>
|
|
114
|
+
<g id="Group_527" data-name="Group 527">
|
|
115
|
+
<path id="Path_577" data-name="Path 577" d="M634.348,285.766l-1.6-1.166.583-.8Z" transform="translate(-632.744 -283.798)" fill="#0073cf"/>
|
|
116
|
+
</g>
|
|
117
|
+
</g>
|
|
118
|
+
</g>
|
|
119
|
+
<g id="Group_532" data-name="Group 532" transform="translate(0.72 1.62)">
|
|
120
|
+
<g id="Group_531" data-name="Group 531">
|
|
121
|
+
<path id="Path_578" data-name="Path 578" d="M622.562,285.766l1.6-1.166-.583-.8Z" transform="translate(-622.562 -283.798)" fill="#0073cf"/>
|
|
122
|
+
<g id="Group_530" data-name="Group 530" transform="translate(0 0.082)">
|
|
123
|
+
<path id="Path_579" data-name="Path 579" d="M622.562,286.829l.613-1.886.943.306Z" transform="translate(-622.562 -284.943)" fill="#0073cf"/>
|
|
124
|
+
</g>
|
|
125
|
+
</g>
|
|
126
|
+
</g>
|
|
127
|
+
</g>
|
|
128
|
+
</g>
|
|
129
|
+
<g id="Group_550" data-name="Group 550" transform="translate(947.985 535.673)">
|
|
130
|
+
<g id="Group_549" data-name="Group 549">
|
|
131
|
+
<g id="Group_536" data-name="Group 536" transform="translate(1.273)">
|
|
132
|
+
<path id="Path_580" data-name="Path 580" d="M353.14,177.778l-.613,1.886.943.306Z" transform="translate(-352.527 -177.778)" fill="#0073cf"/>
|
|
133
|
+
<g id="Group_535" data-name="Group 535" transform="translate(0.283)">
|
|
134
|
+
<path id="Path_581" data-name="Path 581" d="M356.816,177.778l.613,1.886-.943.306Z" transform="translate(-356.486 -177.778)" fill="#0073cf"/>
|
|
135
|
+
</g>
|
|
136
|
+
</g>
|
|
137
|
+
<g id="Group_539" data-name="Group 539" transform="translate(1.585 1.37)">
|
|
138
|
+
<g id="Group_538" data-name="Group 538">
|
|
139
|
+
<path id="Path_582" data-name="Path 582" d="M361.735,196.972h-1.983v.991Z" transform="translate(-359.548 -196.972)" fill="#0073cf"/>
|
|
140
|
+
<g id="Group_537" data-name="Group 537">
|
|
141
|
+
<path id="Path_583" data-name="Path 583" d="M359.08,196.972l-1.6,1.166-.583-.8Z" transform="translate(-356.893 -196.972)" fill="#0073cf"/>
|
|
142
|
+
</g>
|
|
143
|
+
</g>
|
|
144
|
+
</g>
|
|
145
|
+
<g id="Group_542" data-name="Group 542" transform="translate(0 1.37)">
|
|
146
|
+
<g id="Group_541" data-name="Group 541">
|
|
147
|
+
<path id="Path_584" data-name="Path 584" d="M334.693,196.972l1.6,1.166.583-.8Z" transform="translate(-334.693 -196.972)" fill="#0073cf"/>
|
|
148
|
+
<g id="Group_540" data-name="Group 540">
|
|
149
|
+
<path id="Path_585" data-name="Path 585" d="M334.693,196.972h1.983v.991Z" transform="translate(-334.693 -196.972)" fill="#0073cf"/>
|
|
150
|
+
</g>
|
|
151
|
+
</g>
|
|
152
|
+
</g>
|
|
153
|
+
<g id="Group_545" data-name="Group 545" transform="translate(1.447 1.62)">
|
|
154
|
+
<g id="Group_544" data-name="Group 544">
|
|
155
|
+
<path id="Path_586" data-name="Path 586" d="M357.2,203.5l-.613-1.886-.943.306Z" transform="translate(-355.597 -201.528)" fill="#0073cf"/>
|
|
156
|
+
<g id="Group_543" data-name="Group 543">
|
|
157
|
+
<path id="Path_587" data-name="Path 587" d="M356.57,202.432l-1.6-1.166.583-.8Z" transform="translate(-354.966 -200.465)" fill="#0073cf"/>
|
|
158
|
+
</g>
|
|
159
|
+
</g>
|
|
160
|
+
</g>
|
|
161
|
+
<g id="Group_548" data-name="Group 548" transform="translate(0.72 1.62)">
|
|
162
|
+
<g id="Group_547" data-name="Group 547">
|
|
163
|
+
<path id="Path_588" data-name="Path 588" d="M344.784,202.432l1.6-1.166-.583-.8Z" transform="translate(-344.784 -200.465)" fill="#0073cf"/>
|
|
164
|
+
<g id="Group_546" data-name="Group 546" transform="translate(0 0.082)">
|
|
165
|
+
<path id="Path_589" data-name="Path 589" d="M344.784,203.5l.613-1.886.943.306Z" transform="translate(-344.784 -201.61)" fill="#0073cf"/>
|
|
166
|
+
</g>
|
|
167
|
+
</g>
|
|
168
|
+
</g>
|
|
169
|
+
</g>
|
|
170
|
+
</g>
|
|
171
|
+
<g id="Group_566" data-name="Group 566" transform="translate(947.985 541.622)">
|
|
172
|
+
<g id="Group_565" data-name="Group 565">
|
|
173
|
+
<g id="Group_552" data-name="Group 552" transform="translate(1.273)">
|
|
174
|
+
<path id="Path_590" data-name="Path 590" d="M353.14,261.111,352.527,263l.943.306Z" transform="translate(-352.527 -261.111)" fill="#0073cf"/>
|
|
175
|
+
<g id="Group_551" data-name="Group 551" transform="translate(0.283)">
|
|
176
|
+
<path id="Path_591" data-name="Path 591" d="M356.816,261.111l.613,1.886-.943.306Z" transform="translate(-356.486 -261.111)" fill="#0073cf"/>
|
|
177
|
+
</g>
|
|
178
|
+
</g>
|
|
179
|
+
<g id="Group_555" data-name="Group 555" transform="translate(1.585 1.37)">
|
|
180
|
+
<g id="Group_554" data-name="Group 554">
|
|
181
|
+
<path id="Path_592" data-name="Path 592" d="M361.735,280.305h-1.983v.992Z" transform="translate(-359.548 -280.305)" fill="#0073cf"/>
|
|
182
|
+
<g id="Group_553" data-name="Group 553">
|
|
183
|
+
<path id="Path_593" data-name="Path 593" d="M359.08,280.305l-1.6,1.166-.583-.8Z" transform="translate(-356.893 -280.305)" fill="#0073cf"/>
|
|
184
|
+
</g>
|
|
185
|
+
</g>
|
|
186
|
+
</g>
|
|
187
|
+
<g id="Group_558" data-name="Group 558" transform="translate(0 1.37)">
|
|
188
|
+
<g id="Group_557" data-name="Group 557">
|
|
189
|
+
<path id="Path_594" data-name="Path 594" d="M334.693,280.305l1.6,1.166.583-.8Z" transform="translate(-334.693 -280.305)" fill="#0073cf"/>
|
|
190
|
+
<g id="Group_556" data-name="Group 556">
|
|
191
|
+
<path id="Path_595" data-name="Path 595" d="M334.693,280.305h1.983v.992Z" transform="translate(-334.693 -280.305)" fill="#0073cf"/>
|
|
192
|
+
</g>
|
|
193
|
+
</g>
|
|
194
|
+
</g>
|
|
195
|
+
<g id="Group_561" data-name="Group 561" transform="translate(1.447 1.62)">
|
|
196
|
+
<g id="Group_560" data-name="Group 560">
|
|
197
|
+
<path id="Path_596" data-name="Path 596" d="M357.2,286.829l-.613-1.886-.943.306Z" transform="translate(-355.597 -284.862)" fill="#0073cf"/>
|
|
198
|
+
<g id="Group_559" data-name="Group 559">
|
|
199
|
+
<path id="Path_597" data-name="Path 597" d="M356.57,285.766l-1.6-1.166.583-.8Z" transform="translate(-354.966 -283.798)" fill="#0073cf"/>
|
|
200
|
+
</g>
|
|
201
|
+
</g>
|
|
202
|
+
</g>
|
|
203
|
+
<g id="Group_564" data-name="Group 564" transform="translate(0.72 1.62)">
|
|
204
|
+
<g id="Group_563" data-name="Group 563">
|
|
205
|
+
<path id="Path_598" data-name="Path 598" d="M344.784,285.766l1.6-1.166-.583-.8Z" transform="translate(-344.784 -283.798)" fill="#0073cf"/>
|
|
206
|
+
<g id="Group_562" data-name="Group 562" transform="translate(0 0.082)">
|
|
207
|
+
<path id="Path_599" data-name="Path 599" d="M344.784,286.829l.613-1.886.943.306Z" transform="translate(-344.784 -284.943)" fill="#0073cf"/>
|
|
208
|
+
</g>
|
|
209
|
+
</g>
|
|
210
|
+
</g>
|
|
211
|
+
</g>
|
|
212
|
+
</g>
|
|
213
|
+
</g>
|
|
214
|
+
</svg>
|
|
Binary file
|