Compare commits
2744 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
beda6c3b25 | ||
|
|
8ff3a4453a | ||
|
|
ed6c69c040 | ||
|
|
3e13de3069 | ||
|
|
cc192ab882 | ||
|
|
be76d2ef3c | ||
|
|
84c057e640 | ||
|
|
3eb4026dc0 | ||
|
|
1edfde3932 | ||
|
|
43879c410c | ||
|
|
29df8a8a2e | ||
|
|
429f36ebfc | ||
|
|
5844cb9428 | ||
|
|
3c7de2c08f | ||
|
|
ecc73905c1 | ||
|
|
c0d5a39780 | ||
|
|
d43781df49 | ||
|
|
17b8dbf99a | ||
|
|
58b7bbd3d2 | ||
|
|
95bbe84946 | ||
|
|
afb8403dbb | ||
|
|
e7cb2e4022 | ||
|
|
7600571cf5 | ||
|
|
4e07c64790 | ||
|
|
f4290cd433 | ||
|
|
15922f6656 | ||
|
|
393d701ee9 | ||
|
|
ef5d1f421d | ||
|
|
c71338852e | ||
|
|
033a462015 | ||
|
|
3fd726af5e | ||
|
|
6ca2f4c87d | ||
|
|
0c12630b89 | ||
|
|
d3bc7fb400 | ||
|
|
5333c9ec29 | ||
|
|
09b171c1de | ||
|
|
2cd585cd6c | ||
|
|
0b32f7c87f | ||
|
|
08ef4ff3b1 | ||
|
|
b5e8e5cf75 | ||
|
|
cd19af4003 | ||
|
|
1a4fe2ac3b | ||
|
|
8ed8840b63 | ||
|
|
3cbc9997b9 | ||
|
|
a77ed6e844 | ||
|
|
24dbbfa002 | ||
|
|
4354c508c7 | ||
|
|
36f55c1630 | ||
|
|
e536b07874 | ||
|
|
2346829055 | ||
|
|
1dbbdb252c | ||
|
|
6e15684a04 | ||
|
|
2514a33892 | ||
|
|
302105163d | ||
|
|
c128e75f5d | ||
|
|
99e5271cb8 | ||
|
|
15bb819c8a | ||
|
|
c0b4ab9f67 | ||
|
|
4afd29f62c | ||
|
|
6fdeca93b6 | ||
|
|
c67dcae35e | ||
|
|
942ca3b525 | ||
|
|
83653b3a22 | ||
|
|
e1bdcf2d9e | ||
|
|
8c88e9f0f4 | ||
|
|
0572d62c88 | ||
|
|
121728ba2e | ||
|
|
343d4ea641 | ||
|
|
cc939f9645 | ||
|
|
f6ad5bf54c | ||
|
|
2837c41ca4 | ||
|
|
4954c732ee | ||
|
|
6a5268f09b | ||
|
|
7633009ddb | ||
|
|
e267086a17 | ||
|
|
b3780445d3 | ||
|
|
7113fe7e31 | ||
|
|
719865c033 | ||
|
|
2c5664b76e | ||
|
|
43357fe842 | ||
|
|
6222546e20 | ||
|
|
0b032d7434 | ||
|
|
a1ef707065 | ||
|
|
8b6ec2c50b | ||
|
|
f9647ed48d | ||
|
|
c8e284e26f | ||
|
|
48018b33cc | ||
|
|
83af795358 | ||
|
|
ee5d39a001 | ||
|
|
989be64c38 | ||
|
|
80866305d4 | ||
|
|
deddd1b51c | ||
|
|
b647e35c48 | ||
|
|
7932ef6087 | ||
|
|
e58cd1f73a | ||
|
|
9f23dc1d00 | ||
|
|
06bd9d1bf4 | ||
|
|
83088961d0 | ||
|
|
547533e568 | ||
|
|
338a8c204a | ||
|
|
99f940a87e | ||
|
|
cb39edbfd7 | ||
|
|
99f8019aa2 | ||
|
|
1b9112b876 | ||
|
|
e788433c24 | ||
|
|
ea934a1e3d | ||
|
|
244538c0d2 | ||
|
|
6ab1ca67a4 | ||
|
|
b1575524aa | ||
|
|
093b7bbf72 | ||
|
|
20442413bf | ||
|
|
d429756094 | ||
|
|
b5318b4ebc | ||
|
|
4b6164d823 | ||
|
|
97fdb559fb | ||
|
|
37ed89c25f | ||
|
|
7b930da343 | ||
|
|
67cf1e7536 | ||
|
|
8ca9e4ccb1 | ||
|
|
abf475ee80 | ||
|
|
62528253ec | ||
|
|
a377ca7b85 | ||
|
|
c1da3bf537 | ||
|
|
a8911e7f85 | ||
|
|
ab29ec123e | ||
|
|
ca444d36aa | ||
|
|
cb8319ea2d | ||
|
|
af35696db9 | ||
|
|
3af825db91 | ||
|
|
ccd998d709 | ||
|
|
0cfdc7b66a | ||
|
|
7fb6c1e117 | ||
|
|
97586aa5c3 | ||
|
|
5f5d46eb11 | ||
|
|
511d18abec | ||
|
|
24fe98a78c | ||
|
|
51c675c6fe | ||
|
|
01dc43aa09 | ||
|
|
ea0825c226 | ||
|
|
ac3e3ba1e4 | ||
|
|
c16341b3b3 | ||
|
|
4334d1540b | ||
|
|
dbed65985d | ||
|
|
fe7f708e80 | ||
|
|
72aefecab0 | ||
|
|
432098ddd2 | ||
|
|
0bf05e3c7b | ||
|
|
421fcb115f | ||
|
|
b85f1629b3 | ||
|
|
13a7b71e08 | ||
|
|
12968bec26 | ||
|
|
d4f75e4e1b | ||
|
|
4a4df94339 | ||
|
|
d7b278bc65 | ||
|
|
365041c6c3 | ||
|
|
413b26d71b | ||
|
|
45ff2fdcde | ||
|
|
5bd155c294 | ||
|
|
51f4327ce1 | ||
|
|
37cebf38cc | ||
|
|
a2d6f8fec0 | ||
|
|
e895fed180 | ||
|
|
6ed81eadbf | ||
|
|
c756eda805 | ||
|
|
43707a9389 | ||
|
|
d9fbbe1696 | ||
|
|
f746c70dc6 | ||
|
|
a3d09e6d54 | ||
|
|
0a83f9c763 | ||
|
|
f5c5c1b991 | ||
|
|
bfcb46c4fd | ||
|
|
5b35d6e570 | ||
|
|
9269d9b669 | ||
|
|
ec32abbb89 | ||
|
|
c1884a26aa | ||
|
|
1d109bb067 | ||
|
|
35e443975d | ||
|
|
1963270d64 | ||
|
|
3072bbb0d7 | ||
|
|
1697cdc5a1 | ||
|
|
da249cbc40 | ||
|
|
5b94d8bbd7 | ||
|
|
8549755fd5 | ||
|
|
5c51063070 | ||
|
|
758d021f97 | ||
|
|
fea600ba0a | ||
|
|
fd385f8450 | ||
|
|
92d8ee355d | ||
|
|
1f94b25d25 | ||
|
|
8929cd9c08 | ||
|
|
24d85c5cd7 | ||
|
|
4b7cf489c8 | ||
|
|
990a96b56d | ||
|
|
cb23da12cb | ||
|
|
dec2f2a39e | ||
|
|
6315907585 | ||
|
|
6fb9fc4e6f | ||
|
|
df2b966acd | ||
|
|
b09b47543b | ||
|
|
a808d26764 | ||
|
|
e669c681e2 | ||
|
|
b8ca1f920e | ||
|
|
4d983f037e | ||
|
|
c10732736c | ||
|
|
bde5679d11 | ||
|
|
783f3c6955 | ||
|
|
4de93a8cdd | ||
|
|
4087ba0c5c | ||
|
|
cd399f0284 | ||
|
|
b41d318e62 | ||
|
|
97243e9c59 | ||
|
|
3aee541cb9 | ||
|
|
da455c2a14 | ||
|
|
679331323a | ||
|
|
350a52b44e | ||
|
|
0620da4351 | ||
|
|
c4bece1fd5 | ||
|
|
080076e3e4 | ||
|
|
f4ef7ba7e1 | ||
|
|
ffb7126582 | ||
|
|
e22ade38f9 | ||
|
|
ae9c02b456 | ||
|
|
9539c14f2f | ||
|
|
a560d3586a | ||
|
|
ffd155a6aa | ||
|
|
fbf4437159 | ||
|
|
f5ac675379 | ||
|
|
3d266cb237 | ||
|
|
4afe7a73c4 | ||
|
|
f377dfcad4 | ||
|
|
775e1fc4ae | ||
|
|
09e26d0882 | ||
|
|
acfeee3258 | ||
|
|
2b751d2ca6 | ||
|
|
9055d0b8b5 | ||
|
|
e1eb16ce46 | ||
|
|
6b959b4a76 | ||
|
|
7296b704a8 | ||
|
|
f02a74a449 | ||
|
|
3a8a5febe9 | ||
|
|
a0fbae0971 | ||
|
|
3b8a34917f | ||
|
|
5808ea2ba1 | ||
|
|
e348546e59 | ||
|
|
34f3671c09 | ||
|
|
3989f41985 | ||
|
|
bd8b3a9046 | ||
|
|
1aecc3d7e5 | ||
|
|
a366c68c38 | ||
|
|
93059366ab | ||
|
|
df9069090f | ||
|
|
77c5d55d38 | ||
|
|
a9fbf2f968 | ||
|
|
25a3449ad2 | ||
|
|
96c7765f5a | ||
|
|
b01c6e67fd | ||
|
|
c4f3d39d42 | ||
|
|
c84a01310f | ||
|
|
61bf0d5447 | ||
|
|
8002bc66d7 | ||
|
|
c3553a2649 | ||
|
|
6854f2d7e8 | ||
|
|
5913e3830b | ||
|
|
368d26af34 | ||
|
|
ebf4e03019 | ||
|
|
3e94b7d911 | ||
|
|
1fda6eb5ab | ||
|
|
8cef591c57 | ||
|
|
31faa4753c | ||
|
|
fe27939394 | ||
|
|
4155973b8a | ||
|
|
5949c432fa | ||
|
|
eba63ce9ab | ||
|
|
0b772ca50a | ||
|
|
d930d14735 | ||
|
|
8e2eab21ae | ||
|
|
98bd951366 | ||
|
|
7c8363c85e | ||
|
|
b419afad40 | ||
|
|
139bf536e4 | ||
|
|
e110c8ed9b | ||
|
|
20a89d67cb | ||
|
|
ce9a964956 | ||
|
|
296e7011e5 | ||
|
|
798d4dabc0 | ||
|
|
f44694ad44 | ||
|
|
d4a578542f | ||
|
|
3dadc2d1d6 | ||
|
|
149098921f | ||
|
|
34817a0044 | ||
|
|
e18157d5a0 | ||
|
|
87e32baefa | ||
|
|
789c52a9e1 | ||
|
|
32aa897ef8 | ||
|
|
b7384a9a56 | ||
|
|
6ec5dfc5f6 | ||
|
|
b0f71bc990 | ||
|
|
ecdfe24fa8 | ||
|
|
0688641554 | ||
|
|
38644d9d30 | ||
|
|
a751dd63fa | ||
|
|
7da915b1b0 | ||
|
|
c20028782c | ||
|
|
e2de059a78 | ||
|
|
a16faa2610 | ||
|
|
71f2f0e7c9 | ||
|
|
f5bd5a345e | ||
|
|
3ffce87d3a | ||
|
|
207677f1af | ||
|
|
d67d640ef9 | ||
|
|
60e5b5f94e | ||
|
|
959a6e91a0 | ||
|
|
872a7a74fb | ||
|
|
4548831ac5 | ||
|
|
d88f9ed2c0 | ||
|
|
6e68c106f7 | ||
|
|
2507073c20 | ||
|
|
096831c9df | ||
|
|
c26396d693 | ||
|
|
b52b0f525f | ||
|
|
39ee5d77bd | ||
|
|
48c8f16a4c | ||
|
|
adc329c67f | ||
|
|
2a5438d636 | ||
|
|
706834939f | ||
|
|
4525ead1df | ||
|
|
1f42f33102 | ||
|
|
0e3e1f3a9d | ||
|
|
4399af4189 | ||
|
|
2514f11471 | ||
|
|
0546c74b3b | ||
|
|
340b6bf0d2 | ||
|
|
bb6afd7c30 | ||
|
|
09ed0e781a | ||
|
|
94ceb5a46b | ||
|
|
d077165858 | ||
|
|
43b70bf720 | ||
|
|
0c4048484e | ||
|
|
8710f7d196 | ||
|
|
620414187f | ||
|
|
e71dcacd2d | ||
|
|
178c61dbf7 | ||
|
|
c197661be0 | ||
|
|
fb656ce8bd | ||
|
|
749d7e8e4c | ||
|
|
e238fead7c | ||
|
|
0d9be8c255 | ||
|
|
0e37aa9f69 | ||
|
|
22bc98c8bc | ||
|
|
769c8b1f27 | ||
|
|
1043b0eb11 | ||
|
|
6bc79ad54a | ||
|
|
c70bfe1f91 | ||
|
|
a4512ffa6d | ||
|
|
bb5aa94707 | ||
|
|
03f63397ff | ||
|
|
b29a3721d2 | ||
|
|
00244d5428 | ||
|
|
a4d01a5f04 | ||
|
|
4fced076b7 | ||
|
|
9b9d585af0 | ||
|
|
76430a9c77 | ||
|
|
dacbc4dc6d | ||
|
|
7c84e406ac | ||
|
|
096a828e44 | ||
|
|
4916ed0870 | ||
|
|
d7893e1d58 | ||
|
|
22dc0ba772 | ||
|
|
37e17133bc | ||
|
|
cf52ccad67 | ||
|
|
81578fc3cf | ||
|
|
bdb395aa41 | ||
|
|
420537a64d | ||
|
|
af0b57bcda | ||
|
|
9d1dbf4ce9 | ||
|
|
5117efaf98 | ||
|
|
b8766d5fb4 | ||
|
|
421cd41279 | ||
|
|
f98ca56b5e | ||
|
|
e3cbcc8fbd | ||
|
|
37c4da5614 | ||
|
|
af17ca11c7 | ||
|
|
b571ff766c | ||
|
|
9fb807772b | ||
|
|
aa56edddd8 | ||
|
|
65687dfd6f | ||
|
|
67eb261ddb | ||
|
|
5fcb67d646 | ||
|
|
82652de078 | ||
|
|
106ed43f36 | ||
|
|
de71e36843 | ||
|
|
120d36d70b | ||
|
|
d6587b9094 | ||
|
|
5cc0cef06c | ||
|
|
eb66d62f1a | ||
|
|
aba70979ba | ||
|
|
3147624df2 | ||
|
|
dafb2f01b1 | ||
|
|
2c572bbe1e | ||
|
|
44ec8198e5 | ||
|
|
5ac9902384 | ||
|
|
5e44d174e8 | ||
|
|
a5d5e2800c | ||
|
|
b225367e0d | ||
|
|
38cd6a0d0c | ||
|
|
9b5655c1fa | ||
|
|
7168bdd6dc | ||
|
|
e482d69034 | ||
|
|
e1eb354c1c | ||
|
|
585d40f4c1 | ||
|
|
a26bd6ef94 | ||
|
|
aa95dcc0cb | ||
|
|
08c149ed66 | ||
|
|
9dd89dff6a | ||
|
|
49ece1cbf9 | ||
|
|
35204416bf | ||
|
|
56f9149e84 | ||
|
|
7664eb27c4 | ||
|
|
22d0d1029e | ||
|
|
b7ed7a1dd7 | ||
|
|
2645e6f525 | ||
|
|
036348cd60 | ||
|
|
51f2afb7b7 | ||
|
|
2c0968e40e | ||
|
|
3eb5eb1d21 | ||
|
|
4a1b9d8ea4 | ||
|
|
1a84836fd0 | ||
|
|
2e2d90f335 | ||
|
|
b3fb496212 | ||
|
|
a24959319d | ||
|
|
e923f935ea | ||
|
|
0c62db3615 | ||
|
|
d39d89de83 | ||
|
|
98773df76e | ||
|
|
54f7347da5 | ||
|
|
95f749ccd9 | ||
|
|
eb62972aed | ||
|
|
3a5a904afb | ||
|
|
7d68c2c465 | ||
|
|
074a3cfaaf | ||
|
|
2b5e028cbe | ||
|
|
ec20e1ece2 | ||
|
|
b107da09fa | ||
|
|
9534a25270 | ||
|
|
f7e5613f30 | ||
|
|
7d49078f22 | ||
|
|
3abe61e13b | ||
|
|
032efafe2e | ||
|
|
087bcf0ae6 | ||
|
|
cdc1202bbe | ||
|
|
bceca49cdc | ||
|
|
c3e6a30789 | ||
|
|
87913e6c98 | ||
|
|
00fa5aad85 | ||
|
|
2818de4d4a | ||
|
|
e9f8700d6b | ||
|
|
d8b059452c | ||
|
|
98b8ba2650 | ||
|
|
37d924731d | ||
|
|
4affaaf309 | ||
|
|
d3d6e4ae77 | ||
|
|
daf6aaaf30 | ||
|
|
d50b52cdc5 | ||
|
|
cff4ad9e82 | ||
|
|
e3e7a47aea | ||
|
|
c30f901716 | ||
|
|
0ad0cbeb35 | ||
|
|
8ca6c2c433 | ||
|
|
9782599c69 | ||
|
|
768cabe4bb | ||
|
|
5d01384af2 | ||
|
|
15a77e8826 | ||
|
|
dd26d43173 | ||
|
|
59d3bd2746 | ||
|
|
1bbb104600 | ||
|
|
9c258f9da9 | ||
|
|
4c4f885f25 | ||
|
|
fb32d41b3e | ||
|
|
2445f19431 | ||
|
|
7aff020d4d | ||
|
|
192f2b8892 | ||
|
|
3d804665da | ||
|
|
c0558f3527 | ||
|
|
d6a5d701fe | ||
|
|
a34507f6e1 | ||
|
|
8b08ba05c2 | ||
|
|
9ee7febd9b | ||
|
|
47d88d6b79 | ||
|
|
d7e47841e5 | ||
|
|
b6963d0e5c | ||
|
|
1b8ea4b6d7 | ||
|
|
51a97571a0 | ||
|
|
1d53fc41ea | ||
|
|
0798945109 | ||
|
|
8d769dafca | ||
|
|
5d95a3ef7e | ||
|
|
0f24950466 | ||
|
|
902252ad93 | ||
|
|
43c35a760b | ||
|
|
cd3fafb2b0 | ||
|
|
eb5e14661d | ||
|
|
fe15d3b7c1 | ||
|
|
ebd3f0e4e1 | ||
|
|
5673d51cec | ||
|
|
323762ffa7 | ||
|
|
8913eba60d | ||
|
|
a90e56a22b | ||
|
|
d4e46108c4 | ||
|
|
8c103b50af | ||
|
|
c197c2f4fd | ||
|
|
2e2e09ed2b | ||
|
|
3036bab1c6 | ||
|
|
e1e3bba290 | ||
|
|
e556bb242f | ||
|
|
18bdbe13b4 | ||
|
|
6835f6054b | ||
|
|
99e1ff9477 | ||
|
|
932c221548 | ||
|
|
3e324f6544 | ||
|
|
5b575d5627 | ||
|
|
be64e86cc3 | ||
|
|
42743c3ead | ||
|
|
5d8d5d70d0 | ||
|
|
024297c200 | ||
|
|
db030d9733 | ||
|
|
4c699d8001 | ||
|
|
922ed597d6 | ||
|
|
c3a5e2e5d3 | ||
|
|
ad8bd62ae6 | ||
|
|
119802d00f | ||
|
|
674adfb81e | ||
|
|
342d717ff6 | ||
|
|
cdd25ea45f | ||
|
|
4191c51b42 | ||
|
|
a2e256b4c9 | ||
|
|
e3b4f189b4 | ||
|
|
8c6d6b1d09 | ||
|
|
63f8a22b34 | ||
|
|
b965188a5f | ||
|
|
4ca41f4971 | ||
|
|
276d14dd5d | ||
|
|
9a084a6801 | ||
|
|
fb9503199d | ||
|
|
bb931e25d8 | ||
|
|
69d49f9881 | ||
|
|
6ce50435e3 | ||
|
|
0efd7edf0c | ||
|
|
4e37f8aa88 | ||
|
|
fb77bcf762 | ||
|
|
2652060e38 | ||
|
|
3fb6b1ed63 | ||
|
|
5cd54e9f6d | ||
|
|
9ab40af430 | ||
|
|
bcda501864 | ||
|
|
c70d21a92e | ||
|
|
5c915f3d02 | ||
|
|
f0dbc85ca5 | ||
|
|
84439cff86 | ||
|
|
e37da08730 | ||
|
|
3c9c0ec447 | ||
|
|
161a1342b2 | ||
|
|
ae010ef649 | ||
|
|
909fddb732 | ||
|
|
044720b7e5 | ||
|
|
599b263e22 | ||
|
|
625c21a8af | ||
|
|
d515bad46f | ||
|
|
f2da98b136 | ||
|
|
ab758d2377 | ||
|
|
1a3e5a3c70 | ||
|
|
a978a6734f | ||
|
|
3b688aaeb8 | ||
|
|
f73d2bae1f | ||
|
|
6ce5377747 | ||
|
|
619cd57bc6 | ||
|
|
d426847f4f | ||
|
|
2574841bf4 | ||
|
|
fd6b6dc597 | ||
|
|
54a88a94b7 | ||
|
|
057f78fadc | ||
|
|
b4f210d68f | ||
|
|
2471b803e8 | ||
|
|
9e8358dc24 | ||
|
|
12267159f2 | ||
|
|
0e65d2ecfa | ||
|
|
1b1a8594c0 | ||
|
|
2fdaf65244 | ||
|
|
1cb0e39dcc | ||
|
|
a41484cb35 | ||
|
|
455b7ae347 | ||
|
|
d877187d5e | ||
|
|
9bf1c65971 | ||
|
|
a91bab29ff | ||
|
|
929096b3f9 | ||
|
|
5445f97998 | ||
|
|
a6015d46f4 | ||
|
|
110b63b816 | ||
|
|
ec66069e96 | ||
|
|
4482cac9b4 | ||
|
|
1cd9c4ff11 | ||
|
|
203c9c8a7d | ||
|
|
37a83d469c | ||
|
|
e19d86e822 | ||
|
|
f7637a0df7 | ||
|
|
275b0555bd | ||
|
|
5d636baae3 | ||
|
|
a1b14751e5 | ||
|
|
15982ae0b0 | ||
|
|
5f1ef6dfb8 | ||
|
|
14620a5763 | ||
|
|
66b40d8c61 | ||
|
|
1de2fe5e27 | ||
|
|
52ca0908e2 | ||
|
|
f7618e3c73 | ||
|
|
8b3df0d793 | ||
|
|
1f1c8d07c3 | ||
|
|
06dc5aa410 | ||
|
|
83e5ebafd7 | ||
|
|
50fe3109c0 | ||
|
|
d7607df1b1 | ||
|
|
23e9c16ced | ||
|
|
024c019c5b | ||
|
|
514e9b754a | ||
|
|
16e384172c | ||
|
|
9b8819eb08 | ||
|
|
b0255683e9 | ||
|
|
7a285ead7e | ||
|
|
e25fee6f99 | ||
|
|
01f14a7211 | ||
|
|
e993eee97c | ||
|
|
7744dcc508 | ||
|
|
f98ac9dda1 | ||
|
|
af76adf866 | ||
|
|
1c0bb1101b | ||
|
|
9beb4e94d7 | ||
|
|
11e304f42f | ||
|
|
3389f7afc9 | ||
|
|
17e332bb48 | ||
|
|
8e754765e2 | ||
|
|
1b41dc3291 | ||
|
|
262b5a56ca | ||
|
|
15bded694b | ||
|
|
c44a6e296e | ||
|
|
443d3812d1 | ||
|
|
6ead268ef0 | ||
|
|
5fbe74e20d | ||
|
|
4479018289 | ||
|
|
7f451d2635 | ||
|
|
ecb386017f | ||
|
|
4be0ff7095 | ||
|
|
6f06716954 | ||
|
|
f6db2ed8dd | ||
|
|
c143b9b2d7 | ||
|
|
b537016bfb | ||
|
|
e5fcbd1b05 | ||
|
|
b23318be8d | ||
|
|
65c8c8b52a | ||
|
|
0930424406 | ||
|
|
4ae5559a59 | ||
|
|
df3517d7bf | ||
|
|
dd9eda8f97 | ||
|
|
eb42793ad5 | ||
|
|
a30ad77d10 | ||
|
|
26eff8d372 | ||
|
|
685c1ba276 | ||
|
|
04402b325a | ||
|
|
bd57ff793f | ||
|
|
33284302b9 | ||
|
|
89d622b8b2 | ||
|
|
b7f6d7b102 | ||
|
|
cfb3258c36 | ||
|
|
080725295d | ||
|
|
6cf087dc82 | ||
|
|
45d51f56f2 | ||
|
|
7776b19339 | ||
|
|
60467ffd02 | ||
|
|
364e79c673 | ||
|
|
c063cec4d7 | ||
|
|
e2b1a86a29 | ||
|
|
1d49544238 | ||
|
|
70d2adb9e2 | ||
|
|
8ad1bd1501 | ||
|
|
f93b7a1675 | ||
|
|
aaf1afaa13 | ||
|
|
aaa2960b32 | ||
|
|
bf33f3bdce | ||
|
|
577e614fa4 | ||
|
|
c99cd9fc58 | ||
|
|
c6afbed3fe | ||
|
|
0f76af48c1 | ||
|
|
831522d02d | ||
|
|
ea1ed19a92 | ||
|
|
19c1ded81b | ||
|
|
e4bf84701d | ||
|
|
8512e45c5f | ||
|
|
a76f897171 | ||
|
|
53366f62c1 | ||
|
|
d5b69968b4 | ||
|
|
726bf35b76 | ||
|
|
9ada569d59 | ||
|
|
b4829fd3d4 | ||
|
|
942b29c6d7 | ||
|
|
30230645f4 | ||
|
|
431680d8b9 | ||
|
|
480e06a140 | ||
|
|
86b6123305 | ||
|
|
c832fff992 | ||
|
|
d7435cbd9c | ||
|
|
02b2209894 | ||
|
|
7a7f84c49a | ||
|
|
3397165036 | ||
|
|
2771494165 | ||
|
|
b9984ab1f8 | ||
|
|
565f033330 | ||
|
|
0c423c224b | ||
|
|
31ee75f14f | ||
|
|
08ca66c5e7 | ||
|
|
b93b6b448e | ||
|
|
d0c8a6af50 | ||
|
|
dd9305140b | ||
|
|
cde5c9c027 | ||
|
|
99ee0fc72d | ||
|
|
ff452b9d87 | ||
|
|
d56b73e220 | ||
|
|
8f9c336f62 | ||
|
|
1a6af40d0d | ||
|
|
10c5485373 | ||
|
|
0e46e566bc | ||
|
|
f8c2529d44 | ||
|
|
fe7813958a | ||
|
|
f09a123a87 | ||
|
|
c6520f0e65 | ||
|
|
57c3e8f4da | ||
|
|
070d5fc6e8 | ||
|
|
222fea969d | ||
|
|
e5956de744 | ||
|
|
f28f27a87b | ||
|
|
b0783a8995 | ||
|
|
daacd90b35 | ||
|
|
a84de0bae2 | ||
|
|
1869350a9b | ||
|
|
5b8e918d6e | ||
|
|
f0fe968944 | ||
|
|
40f2648fd3 | ||
|
|
b1aff2995d | ||
|
|
5f6636e28b | ||
|
|
b52141d6a8 | ||
|
|
da4b4037a8 | ||
|
|
4c629e82c8 | ||
|
|
e96c44c1f2 | ||
|
|
caeae69eb7 | ||
|
|
84df4785f8 | ||
|
|
7b8ab047ed | ||
|
|
acd7e028d5 | ||
|
|
bf26ec9d1a | ||
|
|
b0d004d716 | ||
|
|
607c37adfd | ||
|
|
83591b4567 | ||
|
|
6b1ba5e150 | ||
|
|
73990acf7a | ||
|
|
43ae607839 | ||
|
|
1e340686e6 | ||
|
|
f8b42929c8 | ||
|
|
1bd473a1b9 | ||
|
|
9790cac065 | ||
|
|
33e72a9c08 | ||
|
|
99edcc0f97 | ||
|
|
7b59379d29 | ||
|
|
9f3cd93bd6 | ||
|
|
ff86c8acc7 | ||
|
|
1cebd3dcd1 | ||
|
|
0a209fc340 | ||
|
|
eac6c46d28 | ||
|
|
d0b53916e3 | ||
|
|
2f2cbade96 | ||
|
|
8b2ca56283 | ||
|
|
234e789d48 | ||
|
|
97abce1ca6 | ||
|
|
fa5475f1c0 | ||
|
|
2a564884e7 | ||
|
|
46a6dbe9b8 | ||
|
|
f07e3c3b25 | ||
|
|
392de5a54f | ||
|
|
9ed4a07b28 | ||
|
|
1b0b3e1a44 | ||
|
|
21781adb9e | ||
|
|
dc3cc37784 | ||
|
|
135d5f4cc7 | ||
|
|
e34c46c893 | ||
|
|
013e059ffc | ||
|
|
5e049efc87 | ||
|
|
7294bec1c8 | ||
|
|
0c9f0e52bd | ||
|
|
0e15bf124a | ||
|
|
a142a5a30c | ||
|
|
a5daa142eb | ||
|
|
a34766bd05 | ||
|
|
312e1bab47 | ||
|
|
3cf4d15192 | ||
|
|
64c23ae18d | ||
|
|
47772f520d | ||
|
|
6fc742f229 | ||
|
|
c197f7996b | ||
|
|
137bedb3f9 | ||
|
|
73b302f432 | ||
|
|
4a25252626 | ||
|
|
b17a403bcd | ||
|
|
0813aff1bd | ||
|
|
076bf6f0e5 | ||
|
|
efbb66ba4a | ||
|
|
fe6006f275 | ||
|
|
6bf03415ac | ||
|
|
8043aebe1a | ||
|
|
d23086a6e8 | ||
|
|
eabd91c29c | ||
|
|
0eff02c69b | ||
|
|
515db517ca | ||
|
|
dd2c210cfb | ||
|
|
7147af8f80 | ||
|
|
b90a94bdd9 | ||
|
|
e9352fca9a | ||
|
|
6cf4fc1026 | ||
|
|
437c59f087 | ||
|
|
449eca6fb4 | ||
|
|
c3c5756c7a | ||
|
|
d7c4ef2fe7 | ||
|
|
2e642310b8 | ||
|
|
71fb2e04a9 | ||
|
|
e84861f770 | ||
|
|
ec9a38c2fe | ||
|
|
c6f62632d8 | ||
|
|
2561e3a64f | ||
|
|
5041e6f3d9 | ||
|
|
67b87e26e8 | ||
|
|
d3778ab1fd | ||
|
|
ed551c375d | ||
|
|
52a3f4e1a8 | ||
|
|
b8af903703 | ||
|
|
6eeeaff399 | ||
|
|
c14bbea0a1 | ||
|
|
43171c05d3 | ||
|
|
8c899ab13f | ||
|
|
4eb0f014b8 | ||
|
|
8f13e8b2bb | ||
|
|
4903089e41 | ||
|
|
2db876d12c | ||
|
|
d373e2891e | ||
|
|
8b0257d24b | ||
|
|
fa3d3aa4dd | ||
|
|
9ca438087e | ||
|
|
037d8c071c | ||
|
|
a6839afc1f | ||
|
|
94196eb11b | ||
|
|
89bb2dba38 | ||
|
|
f61aae7e3f | ||
|
|
ceacf3bf54 | ||
|
|
5e4e382dec | ||
|
|
956c199fcf | ||
|
|
36f9d37487 | ||
|
|
5bc15cf83c | ||
|
|
ab180bc98d | ||
|
|
a13fbab4e4 | ||
|
|
f522305593 | ||
|
|
15c0561588 | ||
|
|
146ccc37a2 | ||
|
|
c22199f92f | ||
|
|
7af68bddea | ||
|
|
7ca40bed32 | ||
|
|
e8913b843d | ||
|
|
385ad5f9ce | ||
|
|
1088a78720 | ||
|
|
e006e92255 | ||
|
|
12bdb5ffe5 | ||
|
|
a92e676e28 | ||
|
|
17027cb515 | ||
|
|
3cd7e1c18c | ||
|
|
6f85fc9e8c | ||
|
|
0401e86216 | ||
|
|
fbd5ffc198 | ||
|
|
d1d626fb6f | ||
|
|
03887f9d1b | ||
|
|
ad55924af5 | ||
|
|
7391846eda | ||
|
|
f3656c2792 | ||
|
|
b56a97ab3d | ||
|
|
3735dc9fa3 | ||
|
|
7a7ea8c7f6 | ||
|
|
9b7e03d557 | ||
|
|
fb64a0a46c | ||
|
|
dd4f5131c7 | ||
|
|
f48ca740fc | ||
|
|
6d553d1ecd | ||
|
|
6452cdca04 | ||
|
|
c3ce52a6c0 | ||
|
|
86eb601c34 | ||
|
|
10e1d9093e | ||
|
|
3cabd195d2 | ||
|
|
7e3eee2591 | ||
|
|
5c747f9db6 | ||
|
|
ffa4616acf | ||
|
|
3ba3c1b881 | ||
|
|
a98c052664 | ||
|
|
37119efec9 | ||
|
|
0c18f944cc | ||
|
|
ec091ce8de | ||
|
|
1b4f4b6b65 | ||
|
|
35d1222cba | ||
|
|
5b8c5c0601 | ||
|
|
ce1bc98ae6 | ||
|
|
f7bb2c02fb | ||
|
|
eab6ffe7db | ||
|
|
cb5ef44d3f | ||
|
|
9820e59559 | ||
|
|
88339fc782 | ||
|
|
d6125d0d0c | ||
|
|
cc840df352 | ||
|
|
ddf733a7cc | ||
|
|
4b0fa940bb | ||
|
|
1498872214 | ||
|
|
2c0559dbea | ||
|
|
7062015e25 | ||
|
|
5ffdc79bc7 | ||
|
|
6ada5e4397 | ||
|
|
19e183c801 | ||
|
|
5117c04883 | ||
|
|
575751323c | ||
|
|
716c5c828b | ||
|
|
7bfda36ae5 | ||
|
|
636f6db51c | ||
|
|
dcbe51c855 | ||
|
|
7e6d07ea88 | ||
|
|
4c92e0aa2c | ||
|
|
8440abcee5 | ||
|
|
5b1c615498 | ||
|
|
a3a8da1746 | ||
|
|
7373e9cdd7 | ||
|
|
24e4162e76 | ||
|
|
c219be1dc2 | ||
|
|
4e619b1693 | ||
|
|
f7f2e6c936 | ||
|
|
14f59801d7 | ||
|
|
279a661176 | ||
|
|
36c07a1c3a | ||
|
|
46b75e8c3c | ||
|
|
fd5bb40560 | ||
|
|
6d32d0b322 | ||
|
|
e275441701 | ||
|
|
748513aa9a | ||
|
|
77731b5674 | ||
|
|
9963c690f2 | ||
|
|
8e81685a9f | ||
|
|
94e721acf2 | ||
|
|
3545b2751d | ||
|
|
83eae467f0 | ||
|
|
605c4ac038 | ||
|
|
5e783124e8 | ||
|
|
36243fb4d3 | ||
|
|
71023ae9df | ||
|
|
d6884d5b0f | ||
|
|
27e6401c97 | ||
|
|
21ea6c6283 | ||
|
|
1dbdd0a366 | ||
|
|
cb60089d44 | ||
|
|
fe99264553 | ||
|
|
38fe2c2a33 | ||
|
|
dd9898e687 | ||
|
|
1ff06c4be4 | ||
|
|
5a7efcd738 | ||
|
|
071223120b | ||
|
|
0259eb6419 | ||
|
|
9d91e6366d | ||
|
|
d1a5376dae | ||
|
|
f283e68073 | ||
|
|
83ed26e5b9 | ||
|
|
0d213fc6db | ||
|
|
a0599e84d9 | ||
|
|
82286d45ed | ||
|
|
2bab328f8d | ||
|
|
a7d1d9880b | ||
|
|
76ce250421 | ||
|
|
0533e559ae | ||
|
|
19e0848698 | ||
|
|
a49e1a70db | ||
|
|
29f186bc18 | ||
|
|
7faba49f66 | ||
|
|
561d0c9a4c | ||
|
|
358d27f2ba | ||
|
|
f89fd9c888 | ||
|
|
3faf1912af | ||
|
|
b18e4f079f | ||
|
|
bad97db302 | ||
|
|
d120c3b93e | ||
|
|
ff70339aad | ||
|
|
c7d8a24f4e | ||
|
|
d903214ddf | ||
|
|
b6d1d0bf5d | ||
|
|
4113d6a2f3 | ||
|
|
56c0d3ec33 | ||
|
|
1a36160c90 | ||
|
|
fce5b4dd78 | ||
|
|
2e5b0fb72d | ||
|
|
57e597ec13 | ||
|
|
259ca06f73 | ||
|
|
c0a148c018 | ||
|
|
9e27cb713f | ||
|
|
644a46bdfd | ||
|
|
b99bdbcd4e | ||
|
|
e0c2131869 | ||
|
|
9981f897a4 | ||
|
|
57672ad384 | ||
|
|
26cbd16b40 | ||
|
|
64a961ec00 | ||
|
|
af57c9e321 | ||
|
|
685d913171 | ||
|
|
b41452162c | ||
|
|
ef473f930a | ||
|
|
b333058b57 | ||
|
|
7df140c164 | ||
|
|
ef1fd9e428 | ||
|
|
98b4681dc5 | ||
|
|
b312b4d502 | ||
|
|
509ed81294 | ||
|
|
1ba2731391 | ||
|
|
e599fafdfd | ||
|
|
caac5466ba | ||
|
|
d83c942fe5 | ||
|
|
c0a0466b6c | ||
|
|
31dc423d1d | ||
|
|
beaf6b0e0d | ||
|
|
4273f2cc55 | ||
|
|
6173841768 | ||
|
|
f7a08e8d27 | ||
|
|
be0b4e9072 | ||
|
|
57e4e4ee0d | ||
|
|
2bb24892df | ||
|
|
55fe24e72c | ||
|
|
1add492a11 | ||
|
|
3de2b7fe43 | ||
|
|
1aa48be01e | ||
|
|
5ead6554b3 | ||
|
|
ae7ccb613e | ||
|
|
8cbac6207d | ||
|
|
6e70c5faf6 | ||
|
|
c555516f29 | ||
|
|
55491d1198 | ||
|
|
a06358779c | ||
|
|
c7d3740cbb | ||
|
|
ee827c917e | ||
|
|
6094b8be9a | ||
|
|
54767b5a65 | ||
|
|
97a2a6a168 | ||
|
|
aca687dc12 | ||
|
|
f2648927f2 | ||
|
|
d76ed50625 | ||
|
|
845590ed68 | ||
|
|
0c125c1386 | ||
|
|
0a884ab20b | ||
|
|
0e6b3eab11 | ||
|
|
db5c17b518 | ||
|
|
1713f49e07 | ||
|
|
04a6b4448f | ||
|
|
6afd7e3b72 | ||
|
|
6db826005c | ||
|
|
3ee8098eb2 | ||
|
|
ce33ae1527 | ||
|
|
27ed1e94e9 | ||
|
|
0c187b4459 | ||
|
|
5315519655 | ||
|
|
1018dc7ced | ||
|
|
6bd089c350 | ||
|
|
ab3f1f829a | ||
|
|
6998aa94fd | ||
|
|
9e3bb09ef1 | ||
|
|
5feb4f9c89 | ||
|
|
0e406c5440 | ||
|
|
42b756952e | ||
|
|
6464bfe850 | ||
|
|
835d7bfb9d | ||
|
|
d40e57ad27 | ||
|
|
e008d7cbeb | ||
|
|
481bc2cb92 | ||
|
|
2eddda1843 | ||
|
|
55c809e839 | ||
|
|
f50a95d723 | ||
|
|
e8fbd77a61 | ||
|
|
43d85521c4 | ||
|
|
e88c5a0da7 | ||
|
|
d9a90eed24 | ||
|
|
c212b525d2 | ||
|
|
b0934c9121 | ||
|
|
f8cfe69b5c | ||
|
|
00130e6ac6 | ||
|
|
3983abe814 | ||
|
|
2298a61d76 | ||
|
|
9bb007f4b5 | ||
|
|
c24732f90a | ||
|
|
df7bd02861 | ||
|
|
8ad667c43e | ||
|
|
8c27cd704e | ||
|
|
9b530d4b0b | ||
|
|
ece11993d7 | ||
|
|
dbd5d891db | ||
|
|
4ece7ed936 | ||
|
|
ddab3709a3 | ||
|
|
8feb51ebce | ||
|
|
09492b15e8 | ||
|
|
c86bb03595 | ||
|
|
5fed64117f | ||
|
|
f07c0488fe | ||
|
|
0d53eb5386 | ||
|
|
1ce1c16a05 | ||
|
|
e1205246fc | ||
|
|
b809343cb6 | ||
|
|
d6e0f33fdb | ||
|
|
eaf3bdbf34 | ||
|
|
488e9d5396 | ||
|
|
ceb1fcb6c1 | ||
|
|
2a28fa9774 | ||
|
|
6588d0e4bb | ||
|
|
5a6e889bd4 | ||
|
|
d69642922e | ||
|
|
8ef132bece | ||
|
|
eafd1e52c4 | ||
|
|
11d7e1e185 | ||
|
|
634141637b | ||
|
|
32e2d97941 | ||
|
|
a40d13af76 | ||
|
|
75aa1e02e5 | ||
|
|
03b5b622d0 | ||
|
|
a75c0eca36 | ||
|
|
cebec03ed6 | ||
|
|
3c62829525 | ||
|
|
ae18186290 | ||
|
|
a3a042aff8 | ||
|
|
cc4e595b9d | ||
|
|
4bb1c39a2e | ||
|
|
0b6c29d274 | ||
|
|
3627a78aed | ||
|
|
89e9ac8039 | ||
|
|
58171e4479 | ||
|
|
b8b10e79fe | ||
|
|
845fbacd11 | ||
|
|
d1fb9c604a | ||
|
|
27afa3af74 | ||
|
|
97fa01f327 | ||
|
|
f97b632c65 | ||
|
|
658c5b42be | ||
|
|
141651d825 | ||
|
|
915a585dfa | ||
|
|
c1352dd6bb | ||
|
|
435c14d822 | ||
|
|
f0884b8e47 | ||
|
|
33c17a6f2e | ||
|
|
8b1fdc6b73 | ||
|
|
f7bab88079 | ||
|
|
b852b54352 | ||
|
|
3b324000f4 | ||
|
|
bd20796509 | ||
|
|
fdd90d1797 | ||
|
|
9b7f44c8a0 | ||
|
|
dac9a318bb | ||
|
|
0b591efe81 | ||
|
|
2b5fcbdcbd | ||
|
|
334001c829 | ||
|
|
97a0161e64 | ||
|
|
357ab6156e | ||
|
|
7eefc9d856 | ||
|
|
3e3cd068dc | ||
|
|
7bf1680ff8 | ||
|
|
c635fe7f36 | ||
|
|
3f70c0d66d | ||
|
|
53f7444a8e | ||
|
|
b3a660959e | ||
|
|
d2bbc57378 | ||
|
|
961369f48d | ||
|
|
dad62137c6 | ||
|
|
0800faf057 | ||
|
|
d12f94888a | ||
|
|
a438efa4be | ||
|
|
f69f852c53 | ||
|
|
72c6707bdb | ||
|
|
01c28019ba | ||
|
|
c65ebd5e83 | ||
|
|
d43ae7ac8e | ||
|
|
ce89428bb9 | ||
|
|
4299cdfeac | ||
|
|
7a998e7ed7 | ||
|
|
8a58ba2374 | ||
|
|
aa67a3ba2a | ||
|
|
26d70b1bd4 | ||
|
|
4d9e626292 | ||
|
|
8824f7edee | ||
|
|
0617c1cd13 | ||
|
|
56674ea708 | ||
|
|
24e59ccedd | ||
|
|
0b5e79ed23 | ||
|
|
f9199f259d | ||
|
|
9ed647d280 | ||
|
|
cb5bc580b0 | ||
|
|
3b908f4a33 | ||
|
|
46dac869d5 | ||
|
|
bafb0dbbfc | ||
|
|
6ccecaf408 | ||
|
|
773dd0805b | ||
|
|
d347ab08e7 | ||
|
|
a5ed7b992f | ||
|
|
906045b215 | ||
|
|
12f087401b | ||
|
|
12074a15a8 | ||
|
|
feb62793d2 | ||
|
|
04419ba24b | ||
|
|
7b89893645 | ||
|
|
6d7c4c4dd4 | ||
|
|
da9f1d1fa3 | ||
|
|
76606256a2 | ||
|
|
aebcc4a631 | ||
|
|
91fb5ae1bd | ||
|
|
0c438cc7a0 | ||
|
|
f82fce2bb7 | ||
|
|
634e556cfa | ||
|
|
f28e5f2ebb | ||
|
|
a16afd7ff9 | ||
|
|
c7b691e2d7 | ||
|
|
3b6acfd67d | ||
|
|
822b495f8a | ||
|
|
bf2a298da7 | ||
|
|
90b26a98d3 | ||
|
|
509839e79e | ||
|
|
9f675dda2a | ||
|
|
06e7a48aaf | ||
|
|
e577f30cb5 | ||
|
|
67e31e0e30 | ||
|
|
8c32957957 | ||
|
|
2a16cf220e | ||
|
|
964c1922cd | ||
|
|
61228d112e | ||
|
|
5fe8443ff4 | ||
|
|
5599b37b59 | ||
|
|
83e4dadcfe | ||
|
|
8ba05ce126 | ||
|
|
11c0e982b2 | ||
|
|
cb988c505d | ||
|
|
762f027e2e | ||
|
|
83da5e6004 | ||
|
|
ec9309edcd | ||
|
|
d1c80de9c8 | ||
|
|
55e2f18d1e | ||
|
|
88e8fbb39a | ||
|
|
e0f9f68b46 | ||
|
|
e71fcc33f9 | ||
|
|
7d07642bef | ||
|
|
096303955e | ||
|
|
1bd846454c | ||
|
|
72f3f1afee | ||
|
|
48759fd66d | ||
|
|
06ce10b351 | ||
|
|
b403828791 | ||
|
|
217065aafc | ||
|
|
5f38d1d3e9 | ||
|
|
f4ee5d0a4b | ||
|
|
8398ec5358 | ||
|
|
7731f93676 | ||
|
|
8123593be5 | ||
|
|
673543df1d | ||
|
|
b1061c5a94 | ||
|
|
8a022a4be0 | ||
|
|
2cf1aabcba | ||
|
|
343279ee5d | ||
|
|
8b215bf6d4 | ||
|
|
f20d38f131 | ||
|
|
fab0d70f21 | ||
|
|
edb6e26bc4 | ||
|
|
8edb74168b | ||
|
|
6259fba6ad | ||
|
|
4f7061aaa8 | ||
|
|
88c8ea0d5a | ||
|
|
be601d4654 | ||
|
|
fde90afe58 | ||
|
|
7dcb9c830f | ||
|
|
7ccddfb755 | ||
|
|
a1432ef0f7 | ||
|
|
5379a26a1a | ||
|
|
6762727826 | ||
|
|
a28144bbc0 | ||
|
|
56b0c333c0 | ||
|
|
a23386bdb4 | ||
|
|
f771f607d6 | ||
|
|
c7b24f7ce9 | ||
|
|
f1a680322b | ||
|
|
ad4f05a0cd | ||
|
|
d47d0e4097 | ||
|
|
f3e82b56e9 | ||
|
|
604e4bbfee | ||
|
|
79b519be72 | ||
|
|
c22e03a222 | ||
|
|
6b07186078 | ||
|
|
b18acd5978 | ||
|
|
bba167c433 | ||
|
|
1199554be7 | ||
|
|
9cc6d1439e | ||
|
|
d3a3115298 | ||
|
|
da5ddb2518 | ||
|
|
9b7dcf5d88 | ||
|
|
e5ffb8de4c | ||
|
|
ff1a5e0539 | ||
|
|
6ccf88f808 | ||
|
|
2c863aa3ec | ||
|
|
5f1d6f333c | ||
|
|
6546108307 | ||
|
|
4a33c0af6e | ||
|
|
a53d7edc7f | ||
|
|
090b2dbd30 | ||
|
|
68d501fabf | ||
|
|
cb92e1d4c9 | ||
|
|
7424c776e5 | ||
|
|
6e502478e3 | ||
|
|
72052b913f | ||
|
|
1ce8f3844b | ||
|
|
751316f388 | ||
|
|
1533d50157 | ||
|
|
e1282081bf | ||
|
|
9f4dc1936b | ||
|
|
ba5cae554c | ||
|
|
bdbc65209c | ||
|
|
87bf899396 | ||
|
|
089ef6f7cd | ||
|
|
ea665da391 | ||
|
|
c9bd1b8510 | ||
|
|
2e1682fbf6 | ||
|
|
9de26ed062 | ||
|
|
8956661eb7 | ||
|
|
325a083e89 | ||
|
|
5918f757cd | ||
|
|
75e426978c | ||
|
|
2ea640cee3 | ||
|
|
d52ccc0500 | ||
|
|
63e76e109f | ||
|
|
c8009487ab | ||
|
|
271be70806 | ||
|
|
56a65d95e3 | ||
|
|
0e9e7612a4 | ||
|
|
b93388f504 | ||
|
|
cdda490fc7 | ||
|
|
9d14f92c01 | ||
|
|
3a966add42 | ||
|
|
8fc125c5b5 | ||
|
|
2e241fda2c | ||
|
|
846257957e | ||
|
|
975f177a23 | ||
|
|
575f013bc9 | ||
|
|
320f3198ea | ||
|
|
e49583f8e0 | ||
|
|
73d801cb1d | ||
|
|
67664365bd | ||
|
|
8530adc782 | ||
|
|
2c45299b6a | ||
|
|
97f031c623 | ||
|
|
2111db73a7 | ||
|
|
01a78feb41 | ||
|
|
a70f6de2e4 | ||
|
|
dbd198ec07 | ||
|
|
974797648f | ||
|
|
c84ef8bdb5 | ||
|
|
0fb17c91d8 | ||
|
|
fceb05e646 | ||
|
|
c0e81e7808 | ||
|
|
470f6a8cbc | ||
|
|
6f1ce750bf | ||
|
|
672cf1a46e | ||
|
|
5f7ee3f4ee | ||
|
|
80262314f3 | ||
|
|
48b6f8c954 | ||
|
|
b7a19c6d16 | ||
|
|
cece9a5028 | ||
|
|
f3bfb08280 | ||
|
|
292427c275 | ||
|
|
db77d91500 | ||
|
|
290a99ba85 | ||
|
|
a86f1e8a90 | ||
|
|
589aa19246 | ||
|
|
f10e7ac224 | ||
|
|
9e5712594c | ||
|
|
c90cc096a1 | ||
|
|
f1a6651f04 | ||
|
|
a36013f2e0 | ||
|
|
36cebd565a | ||
|
|
fefa2ee036 | ||
|
|
446a4b16ee | ||
|
|
9af5aea687 | ||
|
|
a413621efc | ||
|
|
b751383702 | ||
|
|
974da9947c | ||
|
|
3b557c273f | ||
|
|
8458aa7978 | ||
|
|
d5cdfe62d5 | ||
|
|
dfb7c163a0 | ||
|
|
504133fa1b | ||
|
|
7a8f2cf8cd | ||
|
|
9554a39a77 | ||
|
|
bea7eff017 | ||
|
|
3f6aef16eb | ||
|
|
662d21d1aa | ||
|
|
10b2156b12 | ||
|
|
96870367cf | ||
|
|
f414030e87 | ||
|
|
4d6534bfe7 | ||
|
|
a00bceaff7 | ||
|
|
5ef2f185ad | ||
|
|
f5e5ad9670 | ||
|
|
1d316044a7 | ||
|
|
d3dc6f42d1 | ||
|
|
9ca7d1bf56 | ||
|
|
f40226459b | ||
|
|
490595cb35 | ||
|
|
c68a621a71 | ||
|
|
8ec1c1c29a | ||
|
|
42be1d633c | ||
|
|
608efaaae3 | ||
|
|
428960aff2 | ||
|
|
aaceaf097c | ||
|
|
1c42ee1a30 | ||
|
|
352e5918b6 | ||
|
|
858229aaf8 | ||
|
|
7c3d3319c1 | ||
|
|
30307a8ae2 | ||
|
|
a7d06eee2d | ||
|
|
10affe0d9c | ||
|
|
6549ce57e6 | ||
|
|
dd636c1654 | ||
|
|
4c43f7d102 | ||
|
|
6ea8c95c8c | ||
|
|
5cf6cef49d | ||
|
|
786e9bafc8 | ||
|
|
51f92b1eb4 | ||
|
|
261bbea934 | ||
|
|
a4b5c233b7 | ||
|
|
29eeb1eaf3 | ||
|
|
cafae31827 | ||
|
|
a38e5bde3a | ||
|
|
1459bfe7be | ||
|
|
81ec75f81d | ||
|
|
f1531d2b12 | ||
|
|
86515e6814 | ||
|
|
ada47d476c | ||
|
|
7446799e4b | ||
|
|
947e5ab582 | ||
|
|
6b93053a80 | ||
|
|
7c03bd128b | ||
|
|
b62c1277e5 | ||
|
|
688d73b143 | ||
|
|
f4192e4f9d | ||
|
|
c5461b4509 | ||
|
|
98f2d865b9 | ||
|
|
bba3fc01c9 | ||
|
|
ed065fa43d | ||
|
|
52c3ff02ae | ||
|
|
48a634bff4 | ||
|
|
bf7d059472 | ||
|
|
3e5bd82434 | ||
|
|
fcf8e246cf | ||
|
|
2af3d20a71 | ||
|
|
fde9a7a7ba | ||
|
|
d6fb0bc24f | ||
|
|
f4b1e3307d | ||
|
|
306479a77f | ||
|
|
bc264ceaaf | ||
|
|
53d8341886 | ||
|
|
95d36c1f29 | ||
|
|
ba14b27e9a | ||
|
|
d5dc7334a1 | ||
|
|
982416b3f7 | ||
|
|
a11ae18577 | ||
|
|
4e63e3b0de | ||
|
|
7ea1193015 | ||
|
|
5b69e7268e | ||
|
|
1e61918d1c | ||
|
|
ee67cf7d49 | ||
|
|
58f20b4fe5 | ||
|
|
9525989560 | ||
|
|
c600f328a1 | ||
|
|
28ffca1f84 | ||
|
|
e129db4978 | ||
|
|
734d8a8151 | ||
|
|
afdaca0515 | ||
|
|
52b2dbec85 | ||
|
|
aa10d7aeed | ||
|
|
7f7b3e747c | ||
|
|
59fa374491 | ||
|
|
26d8056755 | ||
|
|
b772bc75a9 | ||
|
|
001b7fb799 | ||
|
|
260f819e38 | ||
|
|
6306bc0c90 | ||
|
|
913bc6da93 | ||
|
|
6ac035f0b1 | ||
|
|
fa1b2fe70f | ||
|
|
fa9d2a81a3 | ||
|
|
4cbe6c1000 | ||
|
|
c203d3356b | ||
|
|
d617d8ebb3 | ||
|
|
43d2c3bbc8 | ||
|
|
3e17e9f00d | ||
|
|
b54a53d1ac | ||
|
|
bdb0f5e81c | ||
|
|
29398a0ab5 | ||
|
|
7a65dc96cd | ||
|
|
1ac5df3cd0 | ||
|
|
39d1293350 | ||
|
|
6f8c6bf13e | ||
|
|
51f56719c0 | ||
|
|
45e8c26864 | ||
|
|
3123b429f7 | ||
|
|
05a2cb1020 | ||
|
|
5aa88abacc | ||
|
|
e749420196 | ||
|
|
8ac5957186 | ||
|
|
d0def4a80f | ||
|
|
5a6be9a665 | ||
|
|
734221cc3f | ||
|
|
f5e7dd5164 | ||
|
|
22cc33eb15 | ||
|
|
559416dcae | ||
|
|
68a7550080 | ||
|
|
7f5589c01b | ||
|
|
da9cde6d18 | ||
|
|
5aa8326dfc | ||
|
|
e4ed0994ce | ||
|
|
875d1b209a | ||
|
|
8ed44e6b64 | ||
|
|
886828caa8 | ||
|
|
814b5297ad | ||
|
|
2ab8db3c0c | ||
|
|
94979f7ff5 | ||
|
|
5c46bd37e8 | ||
|
|
c81b9bab79 | ||
|
|
818bab9fa4 | ||
|
|
ee0b7e9c82 | ||
|
|
03b2766ca8 | ||
|
|
fc5c93ab5f | ||
|
|
eee2468a01 | ||
|
|
a5092dc763 | ||
|
|
bf97fd67b4 | ||
|
|
45caa8baab | ||
|
|
ab6ba0e0d8 | ||
|
|
e7bf643d8b | ||
|
|
c8caf6797d | ||
|
|
51941eae49 | ||
|
|
5445632026 | ||
|
|
f08491cee8 | ||
|
|
9cd4ac1df4 | ||
|
|
c612633402 | ||
|
|
0c36849c0f | ||
|
|
1a1f2254e5 | ||
|
|
908a72e00e | ||
|
|
2fe6b5074d | ||
|
|
a7756fc876 | ||
|
|
8cb7eeecd2 | ||
|
|
d4de7f5df3 | ||
|
|
989b75502c | ||
|
|
bb675fde0c | ||
|
|
6df5c35b4e | ||
|
|
9957149115 | ||
|
|
f98870db1f | ||
|
|
7c5e39e170 | ||
|
|
ebe2ab504b | ||
|
|
e4f997113d | ||
|
|
cb155769d5 | ||
|
|
49efece6c6 | ||
|
|
846797be76 | ||
|
|
d6d4d95b20 | ||
|
|
cc8eaea5a7 | ||
|
|
269a995a01 | ||
|
|
77dff119db | ||
|
|
0718d438b8 | ||
|
|
3a2541d3bf | ||
|
|
00d33599f0 | ||
|
|
f49732b036 | ||
|
|
73144c3493 | ||
|
|
c5e7e82b46 | ||
|
|
af6ad9355d | ||
|
|
6c4c908678 | ||
|
|
ae62a46a97 | ||
|
|
bf84c64ea9 | ||
|
|
5ac8a42681 | ||
|
|
03b1914112 | ||
|
|
ff21bde839 | ||
|
|
c62da0eda6 | ||
|
|
932d3a054c | ||
|
|
a67fd48720 | ||
|
|
afc2b48073 | ||
|
|
093d30121d | ||
|
|
1b8583fa51 | ||
|
|
ea37e777cf | ||
|
|
cc5911b4aa | ||
|
|
28d50100d8 | ||
|
|
8ef464597f | ||
|
|
2c64a4f3a1 | ||
|
|
8002d98f50 | ||
|
|
9519ad46a1 | ||
|
|
597b3e16e0 | ||
|
|
addca871ad | ||
|
|
2c0504d596 | ||
|
|
434e8cc937 | ||
|
|
6c950593b7 | ||
|
|
147f77f1dc | ||
|
|
86bbe156db | ||
|
|
bb5dedeeb9 | ||
|
|
261974e9eb | ||
|
|
cbaa7a81bf | ||
|
|
f400cea437 | ||
|
|
dcbe75ec2c | ||
|
|
fec98fd4a9 | ||
|
|
29cb8c42b0 | ||
|
|
d187a437fe | ||
|
|
a263ca8cb3 | ||
|
|
eeae5dbcad | ||
|
|
1bb70930fa | ||
|
|
8e76cf2c13 | ||
|
|
9bf5828079 | ||
|
|
b3bee52ad1 | ||
|
|
2c9b51f29d | ||
|
|
96be8ad072 | ||
|
|
38b661e2cb | ||
|
|
657397b177 | ||
|
|
0796f32c17 | ||
|
|
c70a2925a8 | ||
|
|
17788b2027 | ||
|
|
527dc1982e | ||
|
|
449065b466 | ||
|
|
8a48d9e86b | ||
|
|
a41a14b975 | ||
|
|
f76b30af15 | ||
|
|
44258ffa4b | ||
|
|
659c29cf77 | ||
|
|
b6da314692 | ||
|
|
26955d2b79 | ||
|
|
0a79496f0c | ||
|
|
1d23f8c2f4 | ||
|
|
8d27ed986c | ||
|
|
9b8607fc64 | ||
|
|
a5993419c4 | ||
|
|
ab136c42a7 | ||
|
|
ec08cd99aa | ||
|
|
2aeaa081fe | ||
|
|
b72ae197e5 | ||
|
|
0d2668f2b1 | ||
|
|
50b4906ea8 | ||
|
|
f36a24fef0 | ||
|
|
b1c885a266 | ||
|
|
958260d559 | ||
|
|
8b2d33ac0a | ||
|
|
95e247ae7c | ||
|
|
c55223e750 | ||
|
|
164a0e0160 | ||
|
|
3265f84266 | ||
|
|
2bac72fa36 | ||
|
|
51f6d02cf1 | ||
|
|
9cb452ad20 | ||
|
|
bc70577701 | ||
|
|
076c7f54a8 | ||
|
|
0837affa24 | ||
|
|
c82d4f3e44 | ||
|
|
a898aad667 | ||
|
|
f0a997629d | ||
|
|
8ecdb484c3 | ||
|
|
128abb46d2 | ||
|
|
bfa2101da0 | ||
|
|
e2cd44d69f | ||
|
|
7a9cea4baa | ||
|
|
15ff53dcb6 | ||
|
|
866f8f54ec | ||
|
|
eb1d1517ca | ||
|
|
fa10022496 | ||
|
|
01794ae65f | ||
|
|
5a051824c0 | ||
|
|
d1a5b79bc3 | ||
|
|
c9e70fb0c6 | ||
|
|
f392a00138 | ||
|
|
d747896354 | ||
|
|
a8e4949616 | ||
|
|
e8ec6cc1b1 | ||
|
|
fef69b54fb | ||
|
|
f4a0ff3642 | ||
|
|
5112b33af2 | ||
|
|
2e24b0c53b | ||
|
|
f321aba4ac | ||
|
|
7ac117f964 | ||
|
|
9d133eea75 | ||
|
|
5566fd4f32 | ||
|
|
d098857d5a | ||
|
|
24296ca44e | ||
|
|
8e5147976a | ||
|
|
8b097bcd8c | ||
|
|
7fb4b32e8f | ||
|
|
f777c2c9bc | ||
|
|
e413d69d0b | ||
|
|
c8692473a4 | ||
|
|
a84a599f16 | ||
|
|
0dd1a7b309 | ||
|
|
4792eb4aa4 | ||
|
|
5fcf884303 | ||
|
|
930ac3ae18 | ||
|
|
38a24bf4ce | ||
|
|
52ad757cf4 | ||
|
|
82d7457168 | ||
|
|
f5c28a19e1 | ||
|
|
9735c332ff | ||
|
|
2de1f375fa | ||
|
|
42c2692d28 | ||
|
|
dceb2dd671 | ||
|
|
9001416343 | ||
|
|
5254cef980 | ||
|
|
59ebb15fe9 | ||
|
|
e6addecd8f | ||
|
|
2029aa31d3 | ||
|
|
8b3f473b60 | ||
|
|
723d28e549 | ||
|
|
fae63d04e0 | ||
|
|
abb6bee44d | ||
|
|
faa9932c77 | ||
|
|
95611d2c12 | ||
|
|
25c767c79e | ||
|
|
771909eddb | ||
|
|
631fcb0ad2 | ||
|
|
df7b617881 | ||
|
|
bccdd60889 | ||
|
|
e47728e0e4 | ||
|
|
61a79a36f8 | ||
|
|
49165a09c3 | ||
|
|
ef6313fbb4 | ||
|
|
1fb8b23d4c | ||
|
|
f6d4c6a5a3 | ||
|
|
0b4c52c032 | ||
|
|
b6cdaa8597 | ||
|
|
1d51507134 | ||
|
|
789a0da176 | ||
|
|
df164d7489 | ||
|
|
6ac69c109c | ||
|
|
b40ed7cb11 | ||
|
|
ee85c04796 | ||
|
|
660a160c8e | ||
|
|
ef090846e2 | ||
|
|
75a7e7ce82 | ||
|
|
bf721d031a | ||
|
|
98ed6a6a29 | ||
|
|
958e8662d9 | ||
|
|
9280d1ff49 | ||
|
|
a3585c1feb | ||
|
|
aae5ca0763 | ||
|
|
d6942353f1 | ||
|
|
2d8dae4723 | ||
|
|
ff944092ac | ||
|
|
fa44eccf6b | ||
|
|
1f9e518535 | ||
|
|
645f4e9a80 | ||
|
|
a05e5d1e86 | ||
|
|
fcaf0a5503 | ||
|
|
1abaf50633 | ||
|
|
00cd9b2ecc | ||
|
|
1312ba537a | ||
|
|
13aca0716a | ||
|
|
a5b8d6381f | ||
|
|
acacc61f1c | ||
|
|
837abe3bb8 | ||
|
|
eb40efefd1 | ||
|
|
e7625d48f6 | ||
|
|
b3aeb53763 | ||
|
|
12a56e37ba | ||
|
|
1b6da01734 | ||
|
|
34d875ca57 | ||
|
|
7b684aee0c | ||
|
|
4078443265 | ||
|
|
acb8afaeb7 | ||
|
|
fbce9c0ecf | ||
|
|
2bb134e7f5 | ||
|
|
547ed4c672 | ||
|
|
8e9d73fb5b | ||
|
|
052adc10b5 | ||
|
|
b2d417d7ef | ||
|
|
8543c7b9ff | ||
|
|
b6930415ce | ||
|
|
ebf6deeed2 | ||
|
|
ea86359c41 | ||
|
|
72014c59be | ||
|
|
2b709c6973 | ||
|
|
3ee0789ef7 | ||
|
|
b7d2159d60 | ||
|
|
95c979de98 | ||
|
|
164de5faa5 | ||
|
|
5474a5e0c7 | ||
|
|
9235b5a861 | ||
|
|
3a77b8ee64 | ||
|
|
116f1d7d92 | ||
|
|
3c123a064b | ||
|
|
d4f29805c3 | ||
|
|
0d6d755788 | ||
|
|
29ff95cccc | ||
|
|
20c437277c | ||
|
|
ea959d5994 | ||
|
|
813fdf4aad | ||
|
|
ab1ceff242 | ||
|
|
2e3d0e50ec | ||
|
|
4a5a73597c | ||
|
|
bf1ab7f420 | ||
|
|
53e25ff247 | ||
|
|
48015aa36d | ||
|
|
01becf00f5 | ||
|
|
baa034230f | ||
|
|
6206b1d073 | ||
|
|
4f58deac1f | ||
|
|
97a60834a1 | ||
|
|
0e2938d7b3 | ||
|
|
b0bbe48220 | ||
|
|
8b25d4f710 | ||
|
|
34eb6322c0 | ||
|
|
45d1ec8825 | ||
|
|
e37a8dc8a1 | ||
|
|
f020995ac4 | ||
|
|
0e0c1cfad3 | ||
|
|
79d56bdb0e | ||
|
|
3b70faee24 | ||
|
|
0d5e80cc51 | ||
|
|
f899c75d0c | ||
|
|
5266d1bc11 | ||
|
|
3acc6ee5c9 | ||
|
|
2c0b47a1e9 | ||
|
|
ea0ce23ac7 | ||
|
|
d644a73595 | ||
|
|
c3c9b63326 | ||
|
|
b10ec4db37 | ||
|
|
5d555e044d | ||
|
|
f9be0bfb2e | ||
|
|
0a0aa1c591 | ||
|
|
af2921d0c4 | ||
|
|
4beeba6cf6 | ||
|
|
0c742e5424 | ||
|
|
a5a4c167e8 | ||
|
|
9e11c70416 | ||
|
|
ffacf30722 | ||
|
|
5a3b9ae454 | ||
|
|
717495c4e0 | ||
|
|
714570443d | ||
|
|
c691b248a2 | ||
|
|
a4f541adad | ||
|
|
588030141b | ||
|
|
09b17f77c2 | ||
|
|
62d4bb2144 | ||
|
|
2dc26b4c5d | ||
|
|
ad04e8bee8 | ||
|
|
b87f1f7713 | ||
|
|
6a9c053536 | ||
|
|
e56206241b | ||
|
|
d4e1f1af7a | ||
|
|
c2d14392b2 | ||
|
|
223d8a87ca | ||
|
|
070cc77e0f | ||
|
|
878190ba27 | ||
|
|
3391689d29 | ||
|
|
5d2d8ccc71 | ||
|
|
257611f1b4 | ||
|
|
2e60037d9f | ||
|
|
f7e88855fe | ||
|
|
c727e774c4 | ||
|
|
1b501f6582 | ||
|
|
88ed193725 | ||
|
|
77b317b3cf | ||
|
|
c953791cd0 | ||
|
|
8b598e5565 | ||
|
|
f9551ddff5 | ||
|
|
20dc7068af | ||
|
|
8766fcd089 | ||
|
|
df1ff65796 | ||
|
|
1a6efb3a1c | ||
|
|
674b8c3561 | ||
|
|
3b123ce5c1 | ||
|
|
27f1c5476b | ||
|
|
55da52debd | ||
|
|
47fbe1f600 | ||
|
|
bf12815473 | ||
|
|
b3f2857c20 | ||
|
|
fc12d62d4b | ||
|
|
7c94437177 | ||
|
|
ec2af993da | ||
|
|
ad95ca4e86 | ||
|
|
4872992ba2 | ||
|
|
2b069fce75 | ||
|
|
0f4757c289 | ||
|
|
755ad22489 | ||
|
|
1c1ebfa784 | ||
|
|
d982163911 | ||
|
|
21f11f02a4 | ||
|
|
39e16a18e2 | ||
|
|
32c958e2f2 | ||
|
|
f6dc8a946e | ||
|
|
af4cd46721 | ||
|
|
b3147af553 | ||
|
|
a11dcf0ee7 | ||
|
|
bb4bd0cd2d | ||
|
|
dc9751d5a5 | ||
|
|
db30c24b9f | ||
|
|
bbbb4c7861 | ||
|
|
4f1a18b620 | ||
|
|
a6edf66109 | ||
|
|
d0080b4ba8 | ||
|
|
d395fdcc6a | ||
|
|
0cb35ad216 | ||
|
|
7b9de1dbf2 | ||
|
|
745f43a959 | ||
|
|
8a5b96313a | ||
|
|
01f9e48b79 | ||
|
|
2f51f6efd6 | ||
|
|
9a90336238 | ||
|
|
a64b1c4b51 | ||
|
|
8e2529f068 | ||
|
|
3cec252729 | ||
|
|
9d0a6ef96d | ||
|
|
a87cc41914 | ||
|
|
76f21abcdc | ||
|
|
994d4aa63f | ||
|
|
678904dcfb | ||
|
|
18d898cc1f | ||
|
|
86ced4cdad | ||
|
|
aea2b1ebc9 | ||
|
|
52d1f3baa6 | ||
|
|
585d28692d | ||
|
|
6aff7460fe | ||
|
|
1ec9763566 | ||
|
|
07b6cf9309 | ||
|
|
39e80fb404 | ||
|
|
029d85c39b | ||
|
|
9d4f3a96ee | ||
|
|
0f6e614223 | ||
|
|
50baa09f5e | ||
|
|
4c877f118d | ||
|
|
a50db80510 | ||
|
|
dd01a398b6 | ||
|
|
5849621db3 | ||
|
|
369ae5f333 | ||
|
|
54d73b320a | ||
|
|
04876690f7 | ||
|
|
0571de8a21 | ||
|
|
001a4908d2 | ||
|
|
e79bc5dc1b | ||
|
|
a0f800e0be | ||
|
|
8dca2502cd | ||
|
|
41ac8d4e01 | ||
|
|
a51c0744e6 | ||
|
|
a929331160 | ||
|
|
e83c141599 | ||
|
|
6161495058 | ||
|
|
790aba72db | ||
|
|
157cae29ff | ||
|
|
3b26f53bb6 | ||
|
|
fdb7a781e0 | ||
|
|
e55ceef905 | ||
|
|
dee0258f44 | ||
|
|
ec83f792ad | ||
|
|
dee7a13409 | ||
|
|
758723256e | ||
|
|
a0494c4e05 | ||
|
|
1eca8e2ceb | ||
|
|
ae6d4501c0 | ||
|
|
5c55fb83d6 | ||
|
|
b00fb0e96a | ||
|
|
dd51cccd7c | ||
|
|
2892a31dea | ||
|
|
489282e047 | ||
|
|
5030410dd6 | ||
|
|
a03a738317 | ||
|
|
c421c0b1bf | ||
|
|
bfdffc653e | ||
|
|
1e76ef7a24 | ||
|
|
8630d0319d | ||
|
|
a74ac336e5 | ||
|
|
31260be907 | ||
|
|
4a0dc06038 | ||
|
|
10f178e429 | ||
|
|
6b359df6c6 | ||
|
|
d532fe3482 | ||
|
|
87c193df1a | ||
|
|
acfe095710 | ||
|
|
8bac9efd4c | ||
|
|
f22c02ecc6 | ||
|
|
2411d5286b | ||
|
|
bf0b2ea101 | ||
|
|
e1e364f7c7 | ||
|
|
42a3668efa | ||
|
|
c899469168 | ||
|
|
d2fd997d77 | ||
|
|
3eb550a15c | ||
|
|
3fad360f5f | ||
|
|
c06088dcab | ||
|
|
69758f32dc | ||
|
|
a1c0a05804 | ||
|
|
55652e5b04 | ||
|
|
7e81671c39 | ||
|
|
a476da0230 | ||
|
|
9f4ce2dcf2 | ||
|
|
7640f2768d | ||
|
|
e96d773f04 | ||
|
|
cd96cf9cd7 | ||
|
|
2ed598b09d | ||
|
|
d3df768f16 | ||
|
|
814255bfd0 | ||
|
|
2cc6f36b68 | ||
|
|
a6409ee82d | ||
|
|
c58b848cef | ||
|
|
4966148432 | ||
|
|
90140f6361 | ||
|
|
1391706573 | ||
|
|
cec8a77d52 | ||
|
|
0fa6aab5f5 | ||
|
|
b96fa43376 | ||
|
|
9da9310f4b | ||
|
|
b0e4a9b08b | ||
|
|
99150b9b49 | ||
|
|
03de7f9901 | ||
|
|
68fd1f0fad | ||
|
|
1460bfd1fc | ||
|
|
d0c503d6c8 | ||
|
|
8ab82b7ed7 | ||
|
|
2d360eab74 | ||
|
|
8add007cf3 | ||
|
|
3c0e8757c9 | ||
|
|
c773fcb946 | ||
|
|
2aaed5d4c3 | ||
|
|
0022834af4 | ||
|
|
9aad7042a2 | ||
|
|
9aa8b32df8 | ||
|
|
4f32be9766 | ||
|
|
25ef0913bb | ||
|
|
a5ed5be3cf | ||
|
|
697c7f9fe9 | ||
|
|
f7c2603d7c | ||
|
|
a28691f14d | ||
|
|
ca9823b35e | ||
|
|
91c037e578 | ||
|
|
5fe0af2500 | ||
|
|
6d7492d92a | ||
|
|
cf150fc575 | ||
|
|
a2c84e7702 | ||
|
|
7a9a5e8dc3 | ||
|
|
e9c6c2ed3f | ||
|
|
9da35a7980 | ||
|
|
f01f56626a | ||
|
|
09485f4b9d | ||
|
|
5a30b02be4 | ||
|
|
21eb8b9100 | ||
|
|
a0c205e4c9 | ||
|
|
40d7df793d | ||
|
|
71610ce24d | ||
|
|
41adcdc898 | ||
|
|
e98346e7cd | ||
|
|
0802aaae91 | ||
|
|
cf0b2816c1 | ||
|
|
7418815637 | ||
|
|
d71e84b790 | ||
|
|
aa388f1173 | ||
|
|
7a3df1c7d6 | ||
|
|
59bedae15e | ||
|
|
a127077bde | ||
|
|
49be03e845 | ||
|
|
e3d807b053 | ||
|
|
e5c0af478d | ||
|
|
82cd88cf25 | ||
|
|
e94e712d49 | ||
|
|
021d6c5908 | ||
|
|
b09f0618a9 | ||
|
|
ea17711616 | ||
|
|
e0b4875615 | ||
|
|
bbfd1448c5 | ||
|
|
d482d3c907 | ||
|
|
3236f72031 | ||
|
|
67ba81e80a | ||
|
|
8c895cd435 | ||
|
|
99b5695fec | ||
|
|
05f9cf453d | ||
|
|
3d7a74cc2b | ||
|
|
f7f9d8bfc3 | ||
|
|
ff95952969 | ||
|
|
373c587ef8 | ||
|
|
ca024673b9 | ||
|
|
ef7d8a6d94 | ||
|
|
0cc8027fd9 | ||
|
|
9e085511fd | ||
|
|
344184f239 | ||
|
|
ad41229bb6 | ||
|
|
bb5e78f723 | ||
|
|
2f473912ac | ||
|
|
62a49af23f | ||
|
|
751a1dc543 | ||
|
|
8b97e2ceab | ||
|
|
d01d67c2b0 | ||
|
|
4274c7287a | ||
|
|
2830b6caf4 | ||
|
|
baf3df5736 | ||
|
|
7527bdd2c7 | ||
|
|
7965011be9 | ||
|
|
6c6819f27c | ||
|
|
f7bdc9339c | ||
|
|
7b43ec757c | ||
|
|
8cd37d28da | ||
|
|
b6d70f4434 | ||
|
|
fc4e1485ad | ||
|
|
76833d478b | ||
|
|
b35903bb19 | ||
|
|
ff45dc6430 | ||
|
|
b1c48ed346 | ||
|
|
5a549519a6 | ||
|
|
0e580635eb | ||
|
|
60d3076038 | ||
|
|
0c428efea0 | ||
|
|
19f1489c92 | ||
|
|
b406da8755 | ||
|
|
e9fa1dd3a9 | ||
|
|
87c006da2c | ||
|
|
15a8560f9a | ||
|
|
0daf7c9af7 | ||
|
|
17983c47d8 | ||
|
|
6e0145eeea | ||
|
|
df155293b1 | ||
|
|
6ca0b3ad03 | ||
|
|
9111370349 | ||
|
|
868ec82997 | ||
|
|
c2038a5ccc | ||
|
|
cb628d0799 | ||
|
|
7c4f67b1a1 | ||
|
|
a82f9d5266 | ||
|
|
b6493a2f82 | ||
|
|
74c81d6921 | ||
|
|
02eb8a284c | ||
|
|
bf2d792d94 | ||
|
|
10294ab240 | ||
|
|
88ff92a658 | ||
|
|
8d9987a6b5 | ||
|
|
6ba471421f | ||
|
|
5310b4c14b | ||
|
|
e47fae034a | ||
|
|
d0a35f378b | ||
|
|
2648fe066e | ||
|
|
69567f9806 | ||
|
|
0007e669fb | ||
|
|
7247e97ff0 | ||
|
|
045b0b9889 | ||
|
|
844dbcf740 | ||
|
|
10671aa06e | ||
|
|
373f850002 | ||
|
|
ac34ca11df | ||
|
|
710e295b44 | ||
|
|
22a1a7343b | ||
|
|
c3b05cb34e | ||
|
|
b5c27ca074 | ||
|
|
704a599811 | ||
|
|
1dfaf70562 | ||
|
|
dc92b126c7 | ||
|
|
c6f70cb72c | ||
|
|
f701e2601a | ||
|
|
8cb8890ab3 | ||
|
|
a7a5679bfa | ||
|
|
03587abff1 | ||
|
|
496a5baffd | ||
|
|
8996b6b429 | ||
|
|
d483fb0605 | ||
|
|
c2ec5f39ab | ||
|
|
58f927538f | ||
|
|
d9434c7af5 | ||
|
|
6f54ff9e7f | ||
|
|
9eaba3d3f5 | ||
|
|
4805858ecb | ||
|
|
092ae7ef2f | ||
|
|
bbb128b672 | ||
|
|
15b8d410c0 | ||
|
|
8298e73205 | ||
|
|
819e6d9219 | ||
|
|
d2c87a0331 | ||
|
|
286c5e8895 | ||
|
|
7df77d7e5d | ||
|
|
c7c271fb01 | ||
|
|
6804a00af0 | ||
|
|
81c75eb14b | ||
|
|
e604dfe9e8 | ||
|
|
135a5d38ff | ||
|
|
07ed2e8d0a | ||
|
|
2a594414e7 | ||
|
|
d3496c0cb9 | ||
|
|
c15151a0af | ||
|
|
6d1640194e | ||
|
|
06740e5480 | ||
|
|
c338e491fe | ||
|
|
a570ee53a8 | ||
|
|
417a31f1fe | ||
|
|
a4a6f070e4 | ||
|
|
d287abcd68 | ||
|
|
79fd38a899 | ||
|
|
0aa0773ef7 | ||
|
|
154e8bdb50 | ||
|
|
8f37c22917 | ||
|
|
0aeef3187a | ||
|
|
8903eebe17 | ||
|
|
cc4d0af713 | ||
|
|
4a217d9e9f | ||
|
|
122caf7a95 | ||
|
|
a1e5c72eb9 | ||
|
|
7dd163ac85 | ||
|
|
01432d3848 | ||
|
|
d3cae13552 | ||
|
|
061838bdab | ||
|
|
24846a1d64 | ||
|
|
0b31d32793 | ||
|
|
71403980cc | ||
|
|
f8ab754af4 | ||
|
|
fd3ed9e119 | ||
|
|
b53c86c5f4 | ||
|
|
cbe6d31ee3 | ||
|
|
5810221181 | ||
|
|
e9f4594eb9 | ||
|
|
2f991d190f | ||
|
|
ae90b9877a | ||
|
|
786c2a1fd7 | ||
|
|
eef4f7c4cf | ||
|
|
36cc5de0e7 | ||
|
|
ade0f34c6f | ||
|
|
854798f470 | ||
|
|
ca305399c3 | ||
|
|
00a8d44ce1 | ||
|
|
79c7f331c9 | ||
|
|
409c48efcb | ||
|
|
29f3ff155a | ||
|
|
6c1deb41be | ||
|
|
4574415e97 | ||
|
|
f05646c5a1 | ||
|
|
a6f8f707f3 | ||
|
|
e19dbe4f3b | ||
|
|
d393cd67f7 | ||
|
|
c80f5ddcd1 | ||
|
|
a02009d31f | ||
|
|
a4ed1afeb5 | ||
|
|
1fea7c022e | ||
|
|
e7f5aee9fb | ||
|
|
d3805f7545 | ||
|
|
70891f41a5 | ||
|
|
cebba5bfa3 | ||
|
|
0f5c62d3cc | ||
|
|
f9fa338960 | ||
|
|
18daa186b0 | ||
|
|
ad7ac26ff3 | ||
|
|
10efaaa078 | ||
|
|
bb353b940e | ||
|
|
9732d10f24 | ||
|
|
9b80aa76ce | ||
|
|
bc935012da | ||
|
|
e4025f1aff | ||
|
|
03dcc97ce9 | ||
|
|
e2b55315a6 | ||
|
|
1f8b0f2135 | ||
|
|
a9a45dc32b | ||
|
|
f7138c0516 | ||
|
|
d080a204a3 | ||
|
|
fd31d58128 | ||
|
|
a478f02c5b | ||
|
|
ffc0d3cda0 | ||
|
|
c68770c0aa | ||
|
|
ab1f68df93 | ||
|
|
b7622d8551 | ||
|
|
c470e2dcfb | ||
|
|
fe11ae73db | ||
|
|
70fe4f67ee | ||
|
|
6abd1de8b8 | ||
|
|
16b150039a | ||
|
|
ca1dec8e13 | ||
|
|
f81d3bc903 | ||
|
|
88132067ad | ||
|
|
f5eff7d349 | ||
|
|
5f35b9903d | ||
|
|
221f75542a | ||
|
|
d0fcf3c952 | ||
|
|
62f664c592 | ||
|
|
deaeb1a715 | ||
|
|
c1dfbd6993 | ||
|
|
2854c0969b | ||
|
|
1de5e61888 | ||
|
|
47493fa7d9 | ||
|
|
ecfafc613f | ||
|
|
a7ea51fc3e | ||
|
|
35147c6514 | ||
|
|
2518976326 | ||
|
|
40cb46de46 | ||
|
|
bb907d49c9 | ||
|
|
231ca253f2 | ||
|
|
9d33255850 | ||
|
|
c5d6fc387c | ||
|
|
4a03e6d307 | ||
|
|
dbd4d5e779 | ||
|
|
2a80d33a89 | ||
|
|
2202ff1ccd | ||
|
|
a138a9c6ec | ||
|
|
3d8d66547f | ||
|
|
17e84bf815 | ||
|
|
41540842eb | ||
|
|
65cc3000ee | ||
|
|
1fc8592ef6 | ||
|
|
4afb5caa4e | ||
|
|
ee137ce44c | ||
|
|
9830ab3aad | ||
|
|
005e4aa1bd | ||
|
|
de7d3ba701 | ||
|
|
05884ba279 | ||
|
|
a0e067510c | ||
|
|
2784d1b31c | ||
|
|
8e9d7d97f6 | ||
|
|
f483fd3916 | ||
|
|
4e65b5f73b | ||
|
|
0d7093fe76 | ||
|
|
47ade14e07 | ||
|
|
5ad9d2094a | ||
|
|
848bd8f553 | ||
|
|
74f2266d89 | ||
|
|
03323bc294 | ||
|
|
df1eb9f5cb | ||
|
|
aaa9c82758 | ||
|
|
ba51c0721e | ||
|
|
845b40d815 | ||
|
|
69adab2c9f | ||
|
|
80f0964342 | ||
|
|
56372b6a5f | ||
|
|
af4d3da7a8 | ||
|
|
eed9c56c51 | ||
|
|
ae1971f5d2 | ||
|
|
5c184e501d | ||
|
|
3488f04dd4 | ||
|
|
92db2b85f3 | ||
|
|
060a7807f0 | ||
|
|
52954982a3 | ||
|
|
dec60a9c85 | ||
|
|
39b5e4b1e3 | ||
|
|
d836ad8dbc | ||
|
|
d035efb14e | ||
|
|
401c85ad5b | ||
|
|
54c46df0dc | ||
|
|
a5fb33de02 | ||
|
|
4c2dace4ca | ||
|
|
b09aa2cff3 | ||
|
|
e277d02f83 | ||
|
|
f31ccaacef | ||
|
|
d4576dcf9f | ||
|
|
4e6f48df03 | ||
|
|
218da8a18a | ||
|
|
e28180f3d5 | ||
|
|
bccccb2758 | ||
|
|
46587450cb | ||
|
|
f17712fab3 | ||
|
|
c5ee92f4c3 | ||
|
|
24f292f360 | ||
|
|
4f5b61b798 | ||
|
|
a9e98e6711 | ||
|
|
3286acd306 | ||
|
|
085dcfe7bc | ||
|
|
b6d5f350e4 | ||
|
|
4d3df8b86b | ||
|
|
a356264801 | ||
|
|
d32dbb6d10 | ||
|
|
70319e4939 | ||
|
|
92b2980b41 | ||
|
|
eabcc9261d | ||
|
|
ad5be455bb | ||
|
|
20ce990763 | ||
|
|
30f0a7932b | ||
|
|
33d248d1e4 | ||
|
|
f69869ac1e | ||
|
|
d256194255 | ||
|
|
4de63e612d | ||
|
|
7f50acd886 | ||
|
|
18f8ea8519 | ||
|
|
0a4e3379f9 | ||
|
|
e355753900 | ||
|
|
712d020dfa | ||
|
|
5fc53f19f4 | ||
|
|
957fde964b | ||
|
|
b9688acdf5 | ||
|
|
2a8c7b260a | ||
|
|
a2c7ef5424 | ||
|
|
a1a417329c | ||
|
|
1f81ed306d | ||
|
|
2d78bc95ec | ||
|
|
4f720e9c3b | ||
|
|
0374c91ee7 | ||
|
|
894ad32e83 | ||
|
|
f3ee639dcc | ||
|
|
74a2b5a958 | ||
|
|
aac40c8c58 | ||
|
|
4e4906605b | ||
|
|
894e31fe73 | ||
|
|
67a762aeaf | ||
|
|
28f1140588 | ||
|
|
ac81080185 | ||
|
|
bc8323f96b | ||
|
|
a38661c0f0 | ||
|
|
57cdd26d4d | ||
|
|
582b67c42e | ||
|
|
44791a65b8 | ||
|
|
f3214b7891 | ||
|
|
81dfe506ac | ||
|
|
2356524d1c | ||
|
|
a371bede4d | ||
|
|
1f34d2d644 | ||
|
|
2166213400 | ||
|
|
c4f6158f46 | ||
|
|
7e33ea351d | ||
|
|
9e916cdd5c | ||
|
|
b7843a5d46 | ||
|
|
41e03333a7 | ||
|
|
c57c653535 | ||
|
|
8793ad9f4f | ||
|
|
07b56426ad | ||
|
|
43f9f2a0f2 | ||
|
|
d01824f711 | ||
|
|
841c8fd41d | ||
|
|
4041f3db5c | ||
|
|
91304e70a1 | ||
|
|
27c23058dc | ||
|
|
c511902356 | ||
|
|
8d7cec2a94 | ||
|
|
2b037ee146 | ||
|
|
23569705b4 | ||
|
|
c6da122e41 | ||
|
|
67e9606d55 | ||
|
|
1b8f1f5610 | ||
|
|
4c6bb8846b | ||
|
|
11a1915e61 | ||
|
|
e58ac74aa2 | ||
|
|
2b18aa7d79 | ||
|
|
0f9c8235e1 | ||
|
|
8b0ae88987 | ||
|
|
d8aaae6d42 | ||
|
|
ce4c71ccfb | ||
|
|
5ef141913b | ||
|
|
d27db5a1c7 | ||
|
|
c2bd6e6da1 | ||
|
|
d6406b48fd | ||
|
|
d5b42d99f2 | ||
|
|
42bac1620e | ||
|
|
09130582ad | ||
|
|
73239f5535 | ||
|
|
22abe5a815 | ||
|
|
736450e184 | ||
|
|
d10fda36af | ||
|
|
8639b2858b | ||
|
|
f47a9f93a5 | ||
|
|
52bbd8c764 | ||
|
|
8ef2eec504 | ||
|
|
1c5f16c332 | ||
|
|
588369d297 | ||
|
|
e23195fd86 | ||
|
|
1b0cafd956 | ||
|
|
81a624146b | ||
|
|
9c8ef4240c | ||
|
|
b59edf2690 | ||
|
|
daa3e1351b | ||
|
|
d00ca02c25 | ||
|
|
207106ea46 | ||
|
|
c150d97eaf | ||
|
|
6231cf3496 | ||
|
|
57999b460b | ||
|
|
e2bad5bdc8 | ||
|
|
5170635a1f | ||
|
|
1db5c64f3e | ||
|
|
9e4aa50567 | ||
|
|
2b91595aa9 | ||
|
|
2209059e84 | ||
|
|
b335da75db | ||
|
|
7cfda97b82 | ||
|
|
01f4e9b2a5 | ||
|
|
2bef30635c | ||
|
|
447c133d82 | ||
|
|
fbe6595b19 | ||
|
|
86b738dd79 | ||
|
|
b30fd9d3bf | ||
|
|
e54865b7ec | ||
|
|
2041b77b39 | ||
|
|
f7f21a006e | ||
|
|
51459ba2e2 | ||
|
|
a76908e2fd | ||
|
|
f79da66c36 | ||
|
|
8a64b47644 | ||
|
|
9a0690fb95 | ||
|
|
cdcdab82eb | ||
|
|
32ea24f8ce | ||
|
|
656d0e0ff4 | ||
|
|
49523ba8d1 | ||
|
|
a3b1b1ec60 | ||
|
|
dd8ed7cc77 | ||
|
|
0b09432b7e | ||
|
|
2ba60a7893 | ||
|
|
2a0cc21dfe | ||
|
|
472e55cea5 | ||
|
|
b579285f23 | ||
|
|
c46963807e | ||
|
|
1a73284b0c | ||
|
|
37e848eee9 | ||
|
|
8a167d2743 | ||
|
|
0ab6d81abb | ||
|
|
1d00254d6c | ||
|
|
2e1392ccf8 | ||
|
|
970c3dc6de | ||
|
|
fce68e491a | ||
|
|
2a4b322ec1 | ||
|
|
95018efa52 | ||
|
|
f31f16cd0d | ||
|
|
5df085848b | ||
|
|
8c82ce0c21 | ||
|
|
1d50eb0d7f | ||
|
|
789ec0baef | ||
|
|
30d7ee892e | ||
|
|
3a3f3f664a | ||
|
|
488eadc63e | ||
|
|
6de1f3e593 | ||
|
|
dcaea6d78f | ||
|
|
65e690bad7 | ||
|
|
9ea31042db | ||
|
|
675d617dbc | ||
|
|
a79e9b4fd6 | ||
|
|
f39e3f385c | ||
|
|
ad9f786646 | ||
|
|
8f6226d410 | ||
|
|
8a18488b1e | ||
|
|
53b179b22b | ||
|
|
dcde74bc09 | ||
|
|
86a6f1e932 | ||
|
|
10ed13acc0 | ||
|
|
ccf52d3bff | ||
|
|
b05a8b6dd3 | ||
|
|
1b32e9a475 | ||
|
|
d3f94a4847 | ||
|
|
764797e211 | ||
|
|
31c4cf968b | ||
|
|
6e0aeeea83 | ||
|
|
88745a9f36 | ||
|
|
3bcd8529fa | ||
|
|
8bd832b449 | ||
|
|
5d2bf37ac9 | ||
|
|
f248da3e08 | ||
|
|
8e5b67d7c9 | ||
|
|
f5a257ca79 | ||
|
|
ed90c491e2 | ||
|
|
ea00df0466 | ||
|
|
96b624e941 | ||
|
|
25c0656106 | ||
|
|
b361241c29 | ||
|
|
5b32ecb719 | ||
|
|
d8c126f320 | ||
|
|
6cd979d8d3 | ||
|
|
c6c2a77c3a | ||
|
|
0458aec320 | ||
|
|
b2ae1926a6 | ||
|
|
1ee4a7ec63 | ||
|
|
7e03b25030 | ||
|
|
c68623ddb0 | ||
|
|
847df2f75b | ||
|
|
73be5005c2 | ||
|
|
c36b42af71 | ||
|
|
db3ffd29da | ||
|
|
d7ebd88804 | ||
|
|
75e9489db5 | ||
|
|
a94f5dd692 | ||
|
|
0de36d331f | ||
|
|
de713c564f | ||
|
|
7e3cb3ba31 | ||
|
|
6ada5e5b26 | ||
|
|
aee6b28469 | ||
|
|
c08f31aa76 | ||
|
|
768e206c4a | ||
|
|
84fbee085d | ||
|
|
3126bf6561 | ||
|
|
e193b65bc7 | ||
|
|
fb43e49954 | ||
|
|
41575382ce | ||
|
|
62653d39b3 | ||
|
|
79cf34b72e | ||
|
|
5b3a462247 | ||
|
|
ee6fc5859c | ||
|
|
f13bf59a82 | ||
|
|
f9868b6100 | ||
|
|
f9e7af6e90 | ||
|
|
9030435ba4 | ||
|
|
47cfe7a877 | ||
|
|
a182174fba | ||
|
|
ef91fce621 | ||
|
|
7d47aebfc5 | ||
|
|
b805dbf4b9 | ||
|
|
3847388ed0 | ||
|
|
d6ff9a0297 | ||
|
|
9fa5f16ca0 | ||
|
|
5d7fb0e388 | ||
|
|
9dd37ac9e2 | ||
|
|
32c66e9d1a | ||
|
|
ef341d4333 | ||
|
|
79bc81317d | ||
|
|
33a2e068f6 | ||
|
|
9a3e98ac8f | ||
|
|
e03248929d | ||
|
|
1ed2935eb6 | ||
|
|
50e35de609 | ||
|
|
17180d31d7 | ||
|
|
65f101e7bb | ||
|
|
58de839621 | ||
|
|
787252ef81 | ||
|
|
b80180df22 | ||
|
|
e0bb6183a6 | ||
|
|
20dd2c0b58 | ||
|
|
8a4a6b2023 | ||
|
|
ca2533cafa | ||
|
|
fb7a8b7696 | ||
|
|
3c6d87b52b | ||
|
|
a4b58f4d83 | ||
|
|
ddbac1ad9f | ||
|
|
07772ef5a2 | ||
|
|
57c79c7133 | ||
|
|
05e0e842d6 | ||
|
|
93ea9d7c36 | ||
|
|
b6fa68370b | ||
|
|
bd3eedbda9 | ||
|
|
581c95d093 | ||
|
|
cd9821f87e | ||
|
|
10881587e9 | ||
|
|
5f6b60370d | ||
|
|
1bfe4513ac | ||
|
|
b97ae0246d | ||
|
|
8bc0188c53 | ||
|
|
66ca9a355b | ||
|
|
ec62b5f03c | ||
|
|
3467ca5230 | ||
|
|
d5b21021fb | ||
|
|
4656d25590 | ||
|
|
b1f0f33204 | ||
|
|
d353c13bf1 | ||
|
|
8872a6a24a | ||
|
|
8b0de948d0 | ||
|
|
2e7da36af0 | ||
|
|
38c295427a | ||
|
|
2025cc7747 | ||
|
|
e5fd579935 | ||
|
|
3bd97650dc | ||
|
|
1e8bb5e852 | ||
|
|
6722eedf7a | ||
|
|
53dfdbda08 | ||
|
|
e857ab762c | ||
|
|
14f5d2a489 | ||
|
|
07456ee174 | ||
|
|
b128431128 | ||
|
|
d606ad99b7 | ||
|
|
3598df0d28 | ||
|
|
b90017ff15 | ||
|
|
6bfc90bbe1 | ||
|
|
4e6c2fdd1c | ||
|
|
25439702bb | ||
|
|
145fb69bdd | ||
|
|
f759bfb1f6 | ||
|
|
fb87d97d25 | ||
|
|
0a4614247f | ||
|
|
790eeb1a09 | ||
|
|
6640e709f8 | ||
|
|
c4ecf40d1c | ||
|
|
02ab1fded2 | ||
|
|
b2eebeee18 | ||
|
|
f2bd4a4b5c | ||
|
|
ecfefd6b21 | ||
|
|
50e430d8dc | ||
|
|
96cc5154cd | ||
|
|
e9f0f84152 | ||
|
|
7eb14ad12c | ||
|
|
e5641fe71c | ||
|
|
0b3c0f4a77 | ||
|
|
3987621b12 | ||
|
|
be5aa59e39 | ||
|
|
ecc86def9e | ||
|
|
358b676d04 | ||
|
|
fece64039d | ||
|
|
b93f98252b | ||
|
|
9063a96629 | ||
|
|
9b2fa966f1 | ||
|
|
d2e28122b3 | ||
|
|
ebb08a57c8 | ||
|
|
030fc041be | ||
|
|
6e922166e7 | ||
|
|
f94abb5611 | ||
|
|
8f4953c182 | ||
|
|
0771549ef3 | ||
|
|
445a5b4f38 | ||
|
|
c2fccb7e14 | ||
|
|
d3cf60fafb | ||
|
|
6c5c3c3454 | ||
|
|
82a27d7fa3 | ||
|
|
2ea7ad6d7b | ||
|
|
3a30feaa52 | ||
|
|
98c9dd23d5 | ||
|
|
fb0bbf31c4 | ||
|
|
e87c44c38b | ||
|
|
371ea7c078 | ||
|
|
0e00677851 | ||
|
|
7f50fb3023 | ||
|
|
9dc61307fa | ||
|
|
83d9ca080a | ||
|
|
a8a5d9e053 | ||
|
|
d6a226e6bd | ||
|
|
5bab9a7e34 | ||
|
|
81c2bf6814 | ||
|
|
e69f7602ea | ||
|
|
d2e4d3bc1c | ||
|
|
0e2ee5f127 | ||
|
|
dd7ae83226 | ||
|
|
48a16464d5 | ||
|
|
95b09cde60 | ||
|
|
c26cde2f6f | ||
|
|
181efcfbae | ||
|
|
d291a7cccd | ||
|
|
5c722f31ff | ||
|
|
c56b54eddd | ||
|
|
4d02d28aef | ||
|
|
cb061d80fa | ||
|
|
9b055171ab | ||
|
|
3df214c56e | ||
|
|
d69084f31e | ||
|
|
02a185f2fe | ||
|
|
53f44c5459 | ||
|
|
a17a9521b4 | ||
|
|
2dc1c5c618 | ||
|
|
d5a07a446d | ||
|
|
7232c01a80 | ||
|
|
e5eb617447 | ||
|
|
cb51ad929e | ||
|
|
a8e578f5b8 | ||
|
|
6d74d5f8b7 | ||
|
|
69bb020e5c | ||
|
|
6437b490a6 | ||
|
|
3c3fd7cf2a | ||
|
|
cfed0cbd0d | ||
|
|
b9eab9fe29 | ||
|
|
93da078669 | ||
|
|
bd76251fb5 | ||
|
|
65185a5fd0 | ||
|
|
fb358d8fd6 | ||
|
|
5c51797420 | ||
|
|
332a5b49a5 | ||
|
|
1deadf5aad |
4
.babelrc
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"presets": ["react", "es2015", "es2016"],
|
||||
"plugins": ["transform-class-properties", "transform-object-rest-spread", "transform-async-to-bluebird", "transform-runtime", "add-module-exports"]
|
||||
}
|
||||
10
.dockerignore
Normal file
@@ -0,0 +1,10 @@
|
||||
# Exclude a bunch of stuff which can make the build context a larger than it needs to be
|
||||
test/
|
||||
webapp/
|
||||
lib/
|
||||
node_modules/
|
||||
electron_app/
|
||||
karma-reports/
|
||||
.idea/
|
||||
.tmp/
|
||||
config.json*
|
||||
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
patreon: matrixdotorg
|
||||
liberapay: matrixdotorg
|
||||
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -43,4 +43,4 @@ For the web app:
|
||||
For the desktop app:
|
||||
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->
|
||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
||||
|
||||
56
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Please report security issues by email to security@matrix.org -->
|
||||
|
||||
<!-- This is a bug report template. By following the instructions below and
|
||||
filling out the sections with your information, you will help the us to get all
|
||||
the necessary data to fix your issue.
|
||||
|
||||
You can also preview your report before submitting it. You may remove sections
|
||||
that aren't relevant to your particular case.
|
||||
|
||||
Text between <!-- and --> marks will be invisible in the report.
|
||||
-->
|
||||
|
||||
### Description
|
||||
|
||||
Describe here the problem that you are experiencing, or the feature you are requesting.
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
- For bugs, list the steps
|
||||
- that reproduce the bug
|
||||
- using hyphens as bullet points
|
||||
|
||||
Describe how what happens differs from what you expected.
|
||||
|
||||
<!-- Please send us logs for your bug report. They're very important for bugs
|
||||
which are hard to reproduce. To do this, create this issue then go to your
|
||||
account settings and click 'Submit Debug Logs' from the Help & About tab -->
|
||||
Logs being sent: yes/no
|
||||
|
||||
<!-- Include screenshots if possible: you can drag and drop images below. -->
|
||||
|
||||
### Version information
|
||||
|
||||
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
|
||||
|
||||
- **Platform**: web (in-browser) or desktop?
|
||||
|
||||
For the web app:
|
||||
|
||||
- **Browser**: Chrome, Safari, Firefox? which version?
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
|
||||
|
||||
For the desktop app:
|
||||
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
||||
20
.github/ISSUE_TEMPLATE/suggestion-or-feature-request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Suggestion or Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: suggestion
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your suggestion related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
58
.github/ISSUE_TEMPLATE/user-interface-or-usability-bug-report.md
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
name: User Interface or Usability Bug report
|
||||
about: Please include screenshots in UI/UX bug reports
|
||||
title: ''
|
||||
labels: bug, ui/ux
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
||||
|
||||
<!-- Please report security issues by email to security@matrix.org -->
|
||||
|
||||
<!-- This is a bug report template. By following the instructions below and
|
||||
filling out the sections with your information, you will help the us to get all
|
||||
the necessary data to fix your issue.
|
||||
|
||||
You can also preview your report before submitting it. You may remove sections
|
||||
that aren't relevant to your particular case.
|
||||
|
||||
Text between <!-- and --> marks will be invisible in the report.
|
||||
-->
|
||||
|
||||
### Description
|
||||
|
||||
Describe here the problem that you are experiencing, or the feature you are requesting.
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
- For bugs, list the steps
|
||||
- that reproduce the bug
|
||||
- using hyphens as bullet points
|
||||
|
||||
Describe how what happens differs from what you expected.
|
||||
|
||||
<!-- Please send us logs for your bug report. They're very important for bugs
|
||||
which are hard to reproduce. To do this, create this issue then go to your
|
||||
account settings and click 'Submit Debug Logs' from the Help & About tab -->
|
||||
Logs being sent: yes/no
|
||||
|
||||
<!-- Include screenshots if possible: you can drag and drop images below. -->
|
||||
|
||||
### Version information
|
||||
|
||||
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
|
||||
|
||||
- **Platform**: web (in-browser) or desktop?
|
||||
|
||||
For the web app:
|
||||
|
||||
- **Browser**: Chrome, Safari, Firefox? which version?
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
|
||||
|
||||
For the desktop app:
|
||||
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
||||
7
.gitignore
vendored
@@ -1,17 +1,18 @@
|
||||
/build
|
||||
/cert.pem
|
||||
/dist
|
||||
/karma-reports
|
||||
/key.pem
|
||||
/lib
|
||||
/node_modules
|
||||
/electron_app/node_modules
|
||||
/electron_app/dist
|
||||
/electron_app/pub
|
||||
/packages/
|
||||
/webapp
|
||||
/.npmrc
|
||||
/*.log
|
||||
package-lock.json
|
||||
.DS_Store
|
||||
npm-debug.log
|
||||
electron/dist
|
||||
electron/pub
|
||||
**/.idea
|
||||
@@ -19,3 +20,5 @@ electron/pub
|
||||
/config.json.*
|
||||
/config.local*.json
|
||||
/src/component-index.js
|
||||
/.tmp
|
||||
/webpack-stats.json
|
||||
|
||||
@@ -5,12 +5,33 @@
|
||||
"setClasses"
|
||||
],
|
||||
"feature-detects": [
|
||||
"test/css/animations",
|
||||
"test/css/displaytable",
|
||||
"test/css/filters",
|
||||
"test/css/flexbox",
|
||||
"test/es5/specification",
|
||||
"test/css/objectfit",
|
||||
"test/storage/localstorage",
|
||||
"test/workers/webworkers",
|
||||
"test/indexeddb"
|
||||
|
||||
"test/es5/date",
|
||||
"test/es5/function",
|
||||
"test/es5/object",
|
||||
"test/es5/undefined",
|
||||
|
||||
"test/es6/array",
|
||||
"test/es6/collections",
|
||||
"test/es6/promises",
|
||||
"test/es6/string",
|
||||
|
||||
"test/svg",
|
||||
"test/svg/asimg",
|
||||
"test/svg/filters",
|
||||
|
||||
"test/url/parser",
|
||||
"test/url/urlsearchparams",
|
||||
|
||||
"test/cors",
|
||||
"test/iframe/sandbox",
|
||||
"test/json",
|
||||
"test/network/fetch",
|
||||
"test/storage/localstorage"
|
||||
]
|
||||
}
|
||||
|
||||
26
.stylelintrc.js
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copied from react-sdk
|
||||
// TODO: Only keep one copy of this for synchronization purposes
|
||||
module.exports = {
|
||||
"extends": "stylelint-config-standard",
|
||||
"plugins": [
|
||||
"stylelint-scss",
|
||||
],
|
||||
"rules": {
|
||||
"indentation": 4,
|
||||
"comment-empty-line-before": null,
|
||||
"declaration-empty-line-before": null,
|
||||
"length-zero-no-unit": null,
|
||||
"rule-empty-line-before": null,
|
||||
"color-hex-length": null,
|
||||
"max-empty-lines": null,
|
||||
"number-no-trailing-zeros": null,
|
||||
"number-leading-zero": null,
|
||||
"selector-list-comma-newline-after": null,
|
||||
"at-rule-no-unknown": null,
|
||||
"no-descending-specificity": null,
|
||||
"scss/at-rule-no-unknown": [true, {
|
||||
// https://github.com/vector-im/riot-web/issues/10544
|
||||
"ignoreAtRules": ["define-mixin"],
|
||||
}],
|
||||
}
|
||||
};
|
||||
35
.travis.yml
@@ -1,35 +0,0 @@
|
||||
# we need trusty for the chrome addon
|
||||
dist: trusty
|
||||
|
||||
# we don't need sudo, so can run in a container, which makes startup much
|
||||
# quicker.
|
||||
#
|
||||
# unfortunately we do temporarily require sudo as a workaround for
|
||||
# https://github.com/travis-ci/travis-ci/issues/8836
|
||||
sudo: required
|
||||
|
||||
language: node_js
|
||||
node_js:
|
||||
# make sure we work with a range of node versions.
|
||||
# As of the time of writing:
|
||||
# - 4.x is still in LTS (until April 2018), but some of our deps (notably
|
||||
# extract-zip) don't work with it
|
||||
# - 5.x has been EOLed for nearly a year.
|
||||
# - 6.x is the active 'LTS' version
|
||||
# - 7.x is no longer supported
|
||||
# - 8.x is the current 'current' version (until October 2017)
|
||||
#
|
||||
# see: https://github.com/nodejs/LTS/
|
||||
#
|
||||
# anything before 6.3 ships with npm 3.9 or earlier, which had problems
|
||||
# with symlinks in node_modules (see
|
||||
# https://github.com/npm/npm/releases/tag/v3.10.0 'FIXES AND REFACTORING').
|
||||
- 6.3
|
||||
- 6
|
||||
- 7
|
||||
addons:
|
||||
chrome: stable
|
||||
install:
|
||||
# clone the deps with depth 1: we know we will only ever need that one
|
||||
# commit.
|
||||
- scripts/fetch-develop.deps.sh --depth 1 && npm install
|
||||
1793
CHANGELOG.md
@@ -1,4 +1,4 @@
|
||||
Contributing code to Riot
|
||||
=========================
|
||||
|
||||
Riot follows the same pattern as https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst.
|
||||
Riot follows the same pattern as https://github.com/matrix-org/matrix-js-sdk/blob/master/CONTRIBUTING.rst.
|
||||
|
||||
37
Dockerfile
Normal file
@@ -0,0 +1,37 @@
|
||||
# Builder
|
||||
FROM node:10 as builder
|
||||
|
||||
# Support custom branches of the react-sdk and js-sdk. This also helps us build
|
||||
# images of riot-web develop.
|
||||
ARG USE_CUSTOM_SDKS=false
|
||||
ARG REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git"
|
||||
ARG REACT_SDK_BRANCH="master"
|
||||
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
|
||||
ARG JS_SDK_BRANCH="master"
|
||||
|
||||
RUN apt-get update && apt-get install -y git dos2unix
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY . /src
|
||||
RUN dos2unix /src/scripts/docker-link-repos.sh && bash /src/scripts/docker-link-repos.sh
|
||||
RUN yarn --network-timeout=100000 install
|
||||
RUN yarn build
|
||||
|
||||
# Copy the config now so that we don't create another layer in the app image
|
||||
RUN cp /src/config.sample.json /src/webapp/config.json
|
||||
|
||||
# Ensure we populate the version file
|
||||
RUN dos2unix /src/scripts/docker-write-version.sh && bash /src/scripts/docker-write-version.sh
|
||||
|
||||
|
||||
# App
|
||||
FROM nginx:alpine
|
||||
|
||||
COPY --from=builder /src/webapp /app
|
||||
|
||||
# Insert wasm type into Nginx mime.types file so they load correctly.
|
||||
RUN sed -i '3i\ \ \ \ application/wasm wasm\;' /etc/nginx/mime.types
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html \
|
||||
&& ln -s /app /usr/share/nginx/html
|
||||
439
README.md
@@ -1,40 +1,62 @@
|
||||
Riot
|
||||
====
|
||||
|
||||
Riot (formerly known as Vector) is a Matrix web client built using the Matrix
|
||||
React SDK (https://github.com/matrix-org/matrix-react-sdk).
|
||||
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix
|
||||
React SDK](https://github.com/matrix-org/matrix-react-sdk).
|
||||
|
||||
Supported Environments
|
||||
======================
|
||||
|
||||
Riot has several tiers of support for different environments:
|
||||
|
||||
* Supported
|
||||
* Definition: Issues **actively triaged**, regressions **block** the release
|
||||
* Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes
|
||||
* Latest release of official Riot Desktop app on desktop OSes
|
||||
* Desktop OSes means macOS, Windows, and Linux versions for desktop devices
|
||||
that are actively supported by the OS vendor and receive security updates
|
||||
* Experimental
|
||||
* Definition: Issues **accepted**, regressions **do not block** the release
|
||||
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
||||
* Mobile web for current stable version of Chrome, Firefox, and Safari on Android, iOS, and iPadOS
|
||||
* Not supported
|
||||
* Definition: Issues only affecting unsupported environments are **closed**
|
||||
* Everything else
|
||||
|
||||
For accessing Riot on an Android or iOS device, we currently recommend the
|
||||
native apps [riot-android](https://github.com/vector-im/riot-android)
|
||||
and [riot-ios](https://github.com/vector-im/riot-ios).
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
The easiest way to test Riot is to just use the hosted copy at
|
||||
https://riot.im/app. The develop branch is continuously deployed by Jenkins at
|
||||
https://riot.im/develop for those who like living dangerously.
|
||||
The easiest way to test Riot is to just use the hosted copy at https://riot.im/app.
|
||||
The `develop` branch is continuously deployed by Jenkins at https://riot.im/develop
|
||||
for those who like living dangerously.
|
||||
|
||||
To host your own copy of Riot, the quickest bet is to use a pre-built
|
||||
released version of Riot:
|
||||
|
||||
1. Download the latest version from https://github.com/vector-im/riot-web/releases
|
||||
1. Untar the tarball on your web server
|
||||
1. Move (or symlink) the riot-x.x.x directory to an appropriate name
|
||||
1. Move (or symlink) the `riot-x.x.x` directory to an appropriate name
|
||||
1. Configure the correct caching headers in your webserver (see below)
|
||||
1. If desired, copy `config.sample.json` to `config.json` and edit it
|
||||
as desired. See below for details.
|
||||
as desired. See the [configuration docs](docs/config.md) for details.
|
||||
1. Enter the URL into your browser and log into Riot!
|
||||
|
||||
Releases are signed by PGP, and can be checked against the public key
|
||||
at https://riot.im/packages/keys/riot.asc
|
||||
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
|
||||
at https://packages.riot.im/riot-release-key.asc.
|
||||
|
||||
Note that Chrome does not allow microphone or webcam access for sites served
|
||||
over http (except localhost), so for working VoIP you will need to serve Riot
|
||||
over https.
|
||||
Note that for the security of your chats will need to serve Riot
|
||||
over HTTPS. Major browsers also do not allow you to use VoIP/video
|
||||
chats over HTTP, as WebRTC is only usable over HTTPS.
|
||||
There are some exceptions like when using localhost, which is
|
||||
considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
|
||||
and thus allowed.
|
||||
|
||||
### Installation Steps for Debian Stretch
|
||||
1. Add the repository to your sources.list using either of the following two options:
|
||||
- Directly to sources.list: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee -a /etc/apt/sources.list`
|
||||
- As a separate entry in sources.list.d: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee /etc/apt/sources.list.d/riot.list`
|
||||
2. Add the gpg signing key for the riot repository: `curl -s https://riot.im/packages/debian/repo-key.asc | sudo apt-key add -`
|
||||
3. Update your package lists: `sudo apt-get update`
|
||||
4. Install Riot: `sudo apt-get install riot-web`
|
||||
To install Riot as a desktop application, see [Running as a desktop
|
||||
app](#running-as-a-desktop-app) below.
|
||||
|
||||
Important Security Note
|
||||
=======================
|
||||
@@ -49,149 +71,57 @@ We have put some coarse mitigations into place to try to protect against this
|
||||
situation, but it's still not good practice to do it in the first place. See
|
||||
https://github.com/vector-im/riot-web/issues/1977 for more details.
|
||||
|
||||
The same applies for end-to-end encrypted content, but since this is decrypted
|
||||
on the client, Riot needs a way to supply the decrypted content from a separate
|
||||
origin to the one Riot is hosted on. This currently done with a 'cross origin
|
||||
renderer' which is a small piece of javascript hosted on a different domain.
|
||||
To avoid all Riot installs needing one of these to be set up, riot.im hosts
|
||||
one on usercontent.riot.im which is used by default. See 'config.json' if you'd
|
||||
like to host your own. https://github.com/vector-im/riot-web/issues/6173 tracks
|
||||
progress on replacing this with something better.
|
||||
|
||||
Building From Source
|
||||
====================
|
||||
|
||||
Riot is a modular webapp built with modern ES6 and requires a npm build system
|
||||
to build.
|
||||
Riot is a modular webapp built with modern ES6 and uses a Node.js build system.
|
||||
Ensure you have the latest LTS version of Node.js installed.
|
||||
|
||||
1. Install or update `node.js` so that your `node` is at least v6.3.0 (and `npm`
|
||||
is at least v3.10.x).
|
||||
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
|
||||
guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it already.
|
||||
|
||||
1. Install or update `node.js` so that your `node` is at least v10.x.
|
||||
1. Install `yarn` if not present already.
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
|
||||
1. Switch to the riot-web directory: `cd riot-web`.
|
||||
1. If you're using the `develop` branch, install the develop versions of the
|
||||
dependencies, as the released ones will be too old:
|
||||
```
|
||||
scripts/fetch-develop.deps.sh
|
||||
```
|
||||
Whenever you git pull on riot-web you will also probably need to force an update
|
||||
to these dependencies - the simplest way is to re-run the script, but you can also
|
||||
manually update and rebuild them:
|
||||
```
|
||||
cd matrix-js-sdk
|
||||
git pull
|
||||
npm install # re-run to pull in any new dependencies
|
||||
# Depending on your version of npm, npm run build may happen as part of
|
||||
# the npm install above (https://docs.npmjs.com/misc/scripts#prepublish-and-prepare)
|
||||
# If in doubt, run it anyway:
|
||||
npm run build
|
||||
cd ../matrix-react-sdk
|
||||
git pull
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
However, we recommend setting up a proper development environment (see "Setting
|
||||
up a dev environment" below) if you want to run your own copy of the
|
||||
`develop` branch, as it makes it much easier to keep these dependencies
|
||||
up-to-date. Or just use https://riot.im/develop - the continuous integration
|
||||
release of the develop branch.
|
||||
(Note that we don't reference the develop versions in git directly due to
|
||||
https://github.com/npm/npm/issues/3055.)
|
||||
1. Install the prerequisites: `npm install`.
|
||||
1. Install the prerequisites: `yarn install`.
|
||||
* If you're using the `develop` branch, then it is recommended to set up a
|
||||
proper development environment (see [Setting up a dev
|
||||
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
||||
can use https://riot.im/develop - the continuous integration release of
|
||||
the develop branch.
|
||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it (see below for details).
|
||||
1. `npm run dist` to build a tarball to deploy. Untaring this file will give
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
1. `yarn dist` to build a tarball to deploy. Untaring this file will give
|
||||
a version-specific directory containing all the files that need to go on your
|
||||
web server.
|
||||
|
||||
Note that `npm run dist` is not supported on Windows, so Windows users can run `npm
|
||||
run build`, which will build all the necessary files into the `webapp`
|
||||
directory. The version of Riot will not appear in Settings without
|
||||
using the dist script. You can then mount the `webapp` directory on your
|
||||
webserver to actually serve up the app, which is entirely static content.
|
||||
|
||||
config.json
|
||||
===========
|
||||
|
||||
You can configure the app by copying `config.sample.json` to
|
||||
`config.json` and customising it:
|
||||
|
||||
For a good example, see https://riot.im/develop/config.json
|
||||
|
||||
1. `default_hs_url` is the default homeserver url.
|
||||
1. `default_is_url` is the default identity server url (this is the server used
|
||||
for verifying third party identifiers like email addresses). If this is blank,
|
||||
registering with an email address, adding an email address to your account,
|
||||
or inviting users via email address will not work. Matrix identity servers are
|
||||
very simple web services which map third party identifiers (currently only email
|
||||
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
|
||||
for more details. Currently the only public matrix identity servers are https://matrix.org
|
||||
and https://vector.im. In future identity servers will be decentralised.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or exposed to the user
|
||||
in the `labs` section of settings. The available optional experimental features vary from
|
||||
release to release.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
homeserver know what email template to use when talking to you.
|
||||
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
|
||||
server is not Riot and normally not your Home Server either. The integration server settings
|
||||
may be left blank to disable integrations.
|
||||
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
|
||||
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
|
||||
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
|
||||
https://github.com/matrix-org/rageshake server)
|
||||
1. `roomDirectory`: config for the public room directory. This section is optional.
|
||||
1. `roomDirectory.servers`: List of other homeservers' directories to include in the drop
|
||||
down list. Optional.
|
||||
1. `default_theme`: name of theme to use by default (e.g. 'light')
|
||||
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
|
||||
updates from. This should be the path to the directory containing `macos`
|
||||
and `win32` (for update packages, not installer packages).
|
||||
1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
|
||||
encrypted file attachments. This MUST be hosted on a completely separate domain to
|
||||
anything else since it is used to isolate the privileges of file attachments to this
|
||||
domain. Default: `https://usercontent.riot.im/v1.html`. This needs to contain v1.html from
|
||||
https://github.com/matrix-org/usercontent/blob/master/v1.html
|
||||
1. `piwik`: an object containing the following properties:
|
||||
1. `url`: The URL of the Piwik instance to use for collecting Analytics
|
||||
1. `whitelistedHSUrls`: a list of HS URLs to not redact from the Analytics
|
||||
1. `whitelistedISUrls`: a list of IS URLs to not redact from the Analytics
|
||||
1. `siteId`: The Piwik Site ID to use when sending Analytics to the Piwik server configured above
|
||||
1. `teamServerConfig`, `teamTokenMap`, `referralBaseUrl`: an obsolete precursor to communities
|
||||
with referral tracking; please ignore it.
|
||||
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
|
||||
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Riot
|
||||
appear in some websites like Facebook, and indeed Riot itself. This has to be
|
||||
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
|
||||
not possible for this to be an option in config.json. If you'd like to change
|
||||
it, you can build Riot as above, but run
|
||||
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" npm run build`.
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
Note that `yarn dist` is not supported on Windows, so Windows users can run `yarn build`,
|
||||
which will build all the necessary files into the `webapp` directory. The version of Riot
|
||||
will not appear in Settings without using the dist script. You can then mount the
|
||||
`webapp` directory on your webserver to actually serve up the app, which is entirely static content.
|
||||
|
||||
Running as a Desktop app
|
||||
========================
|
||||
|
||||
Riot can also be run as a desktop app, wrapped in electron. You can download a
|
||||
pre-built version from https://riot.im/desktop.html or, if you prefer,
|
||||
build it yourself. Requires Electron >=1.6.0
|
||||
Riot can also be run as a desktop app, wrapped in Electron. You can download a
|
||||
pre-built version from https://riot.im/download/desktop/ or, if you prefer,
|
||||
build it yourself.
|
||||
|
||||
To run as a desktop app:
|
||||
To build it yourself, follow the instructions below.
|
||||
|
||||
1. Follow the instructions in 'Building From Source' above, but run
|
||||
`npm run build` instead of `npm run dist` (since we don't need the tarball).
|
||||
2. Install electron and run it:
|
||||
`yarn build` instead of `yarn dist` (since we don't need the tarball).
|
||||
2. Install Electron and run it:
|
||||
|
||||
```
|
||||
npm install electron
|
||||
npm run electron
|
||||
```bash
|
||||
yarn electron
|
||||
```
|
||||
|
||||
To build packages, use electron-builder. This is configured to output:
|
||||
* dmg + zip for macOS
|
||||
* exe + nupkg for Windows
|
||||
* deb for Linux
|
||||
To build packages, use `electron-builder`. This is configured to output:
|
||||
* `dmg` + `zip` for macOS
|
||||
* `exe` + `nupkg` for Windows
|
||||
* `deb` for Linux
|
||||
But this can be customised by editing the `build` section of package.json
|
||||
as per https://github.com/electron-userland/electron-builder/wiki/Options
|
||||
|
||||
@@ -199,59 +129,116 @@ See https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Bu
|
||||
for dependencies required for building packages for various platforms.
|
||||
|
||||
The only platform that can build packages for all three platforms is macOS:
|
||||
```
|
||||
brew install wine --without-x11
|
||||
```bash
|
||||
brew install mono
|
||||
brew install gnu-tar
|
||||
npm install
|
||||
npm run build:electron
|
||||
yarn install
|
||||
yarn build:electron
|
||||
```
|
||||
|
||||
For other packages, use electron-builder manually. For example, to build a package
|
||||
for 64 bit Linux:
|
||||
For other packages, use `electron-builder` manually. For example, to build a
|
||||
package for 64 bit Linux:
|
||||
|
||||
1. Follow the instructions in 'Building From Source' above
|
||||
2. `node_modules/.bin/build -l --x64`
|
||||
|
||||
All electron packages go into `electron/dist/`
|
||||
All Electron packages go into `electron_app/dist/`
|
||||
|
||||
Many thanks to @aviraldg for the initial work on the electron integration.
|
||||
Many thanks to @aviraldg for the initial work on the Electron integration.
|
||||
|
||||
Other options for running as a desktop app:
|
||||
* https://github.com/krisak/vector-electron-desktop
|
||||
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
|
||||
|
||||
```
|
||||
sudo npm install nativefier -g
|
||||
```bash
|
||||
yarn global add nativefier
|
||||
nativefier https://riot.im/app/
|
||||
```
|
||||
|
||||
The [configuration docs](docs/config.md#desktop-app-configuration) show how to
|
||||
override the desktop app's default settings if desired.
|
||||
|
||||
Running from Docker
|
||||
===================
|
||||
|
||||
The Docker image can be used to serve riot-web as a web server. The easiest way to use
|
||||
it is to use the prebuilt image:
|
||||
```bash
|
||||
docker run -p 80:80 vectorim/riot-web
|
||||
```
|
||||
|
||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
|
||||
would be:
|
||||
```bash
|
||||
docker run -p 80:80 -v /etc/riot-web/config.json:/app/config.json vectorim/riot-web
|
||||
```
|
||||
|
||||
To build the image yourself:
|
||||
```bash
|
||||
git clone https://github.com/vector-im/riot-web.git riot-web
|
||||
cd riot-web
|
||||
git checkout master
|
||||
docker build -t vectorim/riot-web .
|
||||
```
|
||||
|
||||
If you're building a custom branch, or want to use the develop branch, check out the appropriate
|
||||
riot-web branch and then run:
|
||||
```bash
|
||||
docker build -t vectorim/riot-web:develop \
|
||||
--build-arg USE_CUSTOM_SDKS=true \
|
||||
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
|
||||
--build-arg REACT_SDK_BRANCH="develop" \
|
||||
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
|
||||
--build-arg JS_SDK_BRANCH="develop" \
|
||||
.
|
||||
```
|
||||
|
||||
config.json
|
||||
===========
|
||||
|
||||
Riot supports a variety of settings to configure default servers, behaviour, themes, etc.
|
||||
See the [configuration docs](docs/config.md) for more details.
|
||||
|
||||
Labs Features
|
||||
=============
|
||||
|
||||
Some features of Riot may be enabled by flags in the `Labs` section of the settings.
|
||||
Some of these features are described in [labs.md](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md).
|
||||
|
||||
Caching requirements
|
||||
====================
|
||||
|
||||
Riot requires the following URLs not to be cached, when/if you are serving Riot from your own webserver:
|
||||
```
|
||||
/config.*.json
|
||||
/i18n
|
||||
/home
|
||||
/sites
|
||||
/index.html
|
||||
```
|
||||
|
||||
Development
|
||||
===========
|
||||
|
||||
Before attempting to develop on Riot you **must** read the developer guide
|
||||
for `matrix-react-sdk` at https://github.com/matrix-org/matrix-react-sdk, which
|
||||
Before attempting to develop on Riot you **must** read the [developer guide
|
||||
for `matrix-react-sdk`](https://github.com/matrix-org/matrix-react-sdk), which
|
||||
also defines the design, architecture and style for Riot too.
|
||||
|
||||
Before starting work on a feature, it's best to ensure your plan aligns well
|
||||
with our vision for Riot. Please chat with the team in
|
||||
[#riot-dev:matrix.org](https://matrix.to/#/#riot-dev:matrix.org) before you
|
||||
start so we can ensure it's something we'd be willing to merge.
|
||||
|
||||
You should also familiarise yourself with the ["Here be Dragons" guide
|
||||
](https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM)
|
||||
to the tame & not-so-tame dragons (gotchas) which exist in the codebase.
|
||||
|
||||
The idea of Riot is to be a relatively lightweight "skin" of customisations on
|
||||
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
|
||||
higher and lower level React components useful for building Matrix communication
|
||||
apps using React.
|
||||
|
||||
After creating a new component you must run `npm run reskindex` to regenerate
|
||||
the `component-index.js` for the app (used in future for skinning)
|
||||
|
||||
**However, as of July 2016 this layering abstraction is broken due to rapid
|
||||
development on Riot forcing `matrix-react-sdk` to move fast at the expense of
|
||||
maintaining a clear abstraction between the two.** Hacking on Riot inevitably
|
||||
means hacking equally on `matrix-react-sdk`, and there are bits of
|
||||
`matrix-react-sdk` behaviour incorrectly residing in the `riot-web` project
|
||||
(e.g. matrix-react-sdk specific CSS), and a bunch of Riot specific behaviour
|
||||
in the `matrix-react-sdk` (grep for `vector` / `riot`). This separation problem will be
|
||||
solved asap once development on Riot (and thus matrix-react-sdk) has
|
||||
stabilised. Until then, the two projects should basically be considered as a
|
||||
single unit. In particular, `matrix-react-sdk` issues are currently filed
|
||||
against `riot-web` in github.
|
||||
After creating a new component you must run `yarn reskindex` to regenerate
|
||||
the `component-index.js` for the app (used in future for skinning).
|
||||
|
||||
Please note that Riot is intended to run correctly without access to the public
|
||||
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
|
||||
@@ -268,55 +255,85 @@ having to manually rebuild each time.
|
||||
|
||||
First clone and build `matrix-js-sdk`:
|
||||
|
||||
1. `git clone git@github.com:matrix-org/matrix-js-sdk.git`
|
||||
1. `pushd matrix-js-sdk`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472)
|
||||
1. `popd`
|
||||
``` bash
|
||||
git clone https://github.com/matrix-org/matrix-js-sdk.git
|
||||
pushd matrix-js-sdk
|
||||
git checkout develop
|
||||
yarn link
|
||||
yarn install
|
||||
popd
|
||||
```
|
||||
|
||||
Then similarly with `matrix-react-sdk`:
|
||||
|
||||
1. `git clone git@github.com:matrix-org/matrix-react-sdk.git`
|
||||
1. `pushd matrix-react-sdk`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
||||
1. `popd`
|
||||
```bash
|
||||
git clone https://github.com/matrix-org/matrix-react-sdk.git
|
||||
pushd matrix-react-sdk
|
||||
git checkout develop
|
||||
yarn link
|
||||
yarn link matrix-js-sdk
|
||||
yarn install
|
||||
popd
|
||||
```
|
||||
|
||||
Finally, build and start Riot itself:
|
||||
|
||||
1. `git clone git@github.com:vector-im/riot-web.git`
|
||||
1. `cd riot-web`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
||||
1. `rm -r node_modules/matrix-react-sdk; ln -s ../../matrix-react-sdk node_modules/`
|
||||
1. `npm start`
|
||||
1. Wait a few seconds for the initial build to finish; you should see something like:
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
Time: 14533ms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 4.2 MB 0 [emitted] main
|
||||
bundle.css 91.5 kB 0 [emitted] main
|
||||
bundle.js.map 5.29 MB 0 [emitted] main
|
||||
bundle.css.map 116 kB 0 [emitted] main
|
||||
+ 1013 hidden modules
|
||||
```
|
||||
```bash
|
||||
git clone https://github.com/vector-im/riot-web.git
|
||||
cd riot-web
|
||||
git checkout develop
|
||||
yarn link matrix-js-sdk
|
||||
yarn link matrix-react-sdk
|
||||
yarn install
|
||||
yarn start
|
||||
```
|
||||
|
||||
|
||||
Wait a few seconds for the initial build to finish; you should see something like:
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
Time: 14533ms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 4.2 MB 0 [emitted] main
|
||||
bundle.css 91.5 kB 0 [emitted] main
|
||||
bundle.js.map 5.29 MB 0 [emitted] main
|
||||
bundle.css.map 116 kB 0 [emitted] main
|
||||
+ 1013 hidden modules
|
||||
```
|
||||
Remember, the command will not terminate since it runs the web server
|
||||
and rebuilds source files when they change. This development server also
|
||||
disables caching, so do NOT use it in production.
|
||||
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
|
||||
When you make changes to `matrix-react-sdk` or `matrix-js-sdk`, you will need
|
||||
to run `npm run build` in the relevant directory. You can do this automatically
|
||||
by instead running `npm start` in the directory, to start a development builder
|
||||
which will watch for changes to the files and rebuild automatically.
|
||||
Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
|
||||
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
|
||||
**Note**: The build script uses inotify by default on Linux to monitor directories
|
||||
for changes. If the inotify watch limit is too low your build will silently fail.
|
||||
To avoid this issue, we recommend a limit of at least 128M.
|
||||
|
||||
To set a new inotify watch limit, execute:
|
||||
|
||||
```
|
||||
$ sudo sysctl fs.inotify.max_user_watches=131072
|
||||
$ sudo sysctl -p
|
||||
```
|
||||
|
||||
If you wish, you can make this new limit permanent, by executing:
|
||||
|
||||
```
|
||||
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
|
||||
$ sudo sysctl -p
|
||||
```
|
||||
___
|
||||
|
||||
When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
|
||||
automatically picked up by webpack and built.
|
||||
|
||||
If you add or remove any components from the Riot skin, you will need to rebuild
|
||||
the skin's index by running, `npm run reskindex`.
|
||||
the skin's index by running, `yarn reskindex`.
|
||||
|
||||
If any of these steps error with, `file table overflow`, you are probably on a mac
|
||||
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
|
||||
@@ -332,15 +349,19 @@ are designed to run in a browser instance under the control of
|
||||
* Make sure you have Chrome installed (a recent version, like 59)
|
||||
* Make sure you have `matrix-js-sdk` and `matrix-react-sdk` installed and
|
||||
built, as above
|
||||
* `npm run test`
|
||||
* `yarn test`
|
||||
|
||||
The above will run the tests under Chrome in a `headless` mode.
|
||||
|
||||
You can also tell karma to run the tests in a loop (every time the source
|
||||
changes), in an instance of Chrome on your desktop, with `npm run
|
||||
changes), in an instance of Chrome on your desktop, with `yarn
|
||||
test-multi`. This also gives you the option of running the tests in 'debug'
|
||||
mode, which is useful for stepping through the tests in the developer tools.
|
||||
|
||||
### End-to-End tests
|
||||
|
||||
See [matrix-react-sdk](https://github.com/matrix-org/matrix-react-sdk/#end-to-end-tests) how to run the end-to-end tests.
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
|
||||
23
babel.config.js
Normal file
@@ -0,0 +1,23 @@
|
||||
module.exports = {
|
||||
"sourceMaps": true,
|
||||
"presets": [
|
||||
["@babel/preset-env", {
|
||||
"targets": [
|
||||
"last 2 Chrome versions", "last 2 Firefox versions", "last 2 Safari versions"
|
||||
],
|
||||
}],
|
||||
"@babel/preset-typescript",
|
||||
"@babel/preset-flow",
|
||||
"@babel/preset-react"
|
||||
],
|
||||
"plugins": [
|
||||
["@babel/plugin-proposal-decorators", {legacy: true}],
|
||||
"@babel/plugin-proposal-export-default-from",
|
||||
"@babel/plugin-proposal-numeric-separator",
|
||||
"@babel/plugin-proposal-class-properties",
|
||||
"@babel/plugin-proposal-object-rest-spread",
|
||||
"@babel/plugin-transform-flow-comments",
|
||||
"@babel/plugin-syntax-dynamic-import",
|
||||
"@babel/plugin-transform-runtime"
|
||||
]
|
||||
};
|
||||
@@ -1,6 +1,13 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_config": {
|
||||
"m.homeserver": {
|
||||
"base_url": "https://matrix-client.matrix.org",
|
||||
"server_name": "matrix.org"
|
||||
},
|
||||
"m.identity_server": {
|
||||
"base_url": "https://vector.im"
|
||||
}
|
||||
},
|
||||
"disable_custom_urls": false,
|
||||
"disable_guests": false,
|
||||
"disable_login_language_selector": false,
|
||||
@@ -8,13 +15,23 @@
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"integrations_widgets_urls": [
|
||||
"https://scalar.vector.im/_matrix/integrations/v1",
|
||||
"https://scalar.vector.im/api",
|
||||
"https://scalar-staging.vector.im/_matrix/integrations/v1",
|
||||
"https://scalar-staging.vector.im/api",
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"defaultCountryCode": "GB",
|
||||
"showLabsSettings": false,
|
||||
"features": {
|
||||
"feature_groups": "labs",
|
||||
"feature_pinning": "labs"
|
||||
"feature_pinning": "labs",
|
||||
"feature_custom_status": "labs",
|
||||
"feature_custom_tags": "labs",
|
||||
"feature_state_counters": "labs"
|
||||
},
|
||||
"default_federate": true,
|
||||
"welcomePageUrl": "home.html",
|
||||
"default_theme": "light",
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
@@ -29,6 +46,13 @@
|
||||
"siteId": 1
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false
|
||||
"https://matrix.org": false,
|
||||
"https://matrix-client.matrix.org": false
|
||||
},
|
||||
"settingDefaults": {
|
||||
"breadcrumbs": true
|
||||
},
|
||||
"jitsi": {
|
||||
"preferredDomain": "jitsi.riot.im"
|
||||
}
|
||||
}
|
||||
|
||||
17
contribute.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "Riot",
|
||||
"description": "A glossy Matrix collaboration client for the web.",
|
||||
"repository": {
|
||||
"url": "https://github.com/vector-im/riot-web",
|
||||
"license": "Apache License 2.0"
|
||||
},
|
||||
"bugs": {
|
||||
"list": "https://github.com/vector-im/riot-web/issues",
|
||||
"report": "https://github.com/vector-im/riot-web/issues/new/choose"
|
||||
},
|
||||
"keywords": [
|
||||
"chat",
|
||||
"riot",
|
||||
"matrix"
|
||||
]
|
||||
}
|
||||
147
docs/config.md
Normal file
@@ -0,0 +1,147 @@
|
||||
Configuration
|
||||
=============
|
||||
|
||||
You can configure the app by copying `config.sample.json` to
|
||||
`config.json` and customising it:
|
||||
|
||||
For a good example, see https://riot.im/develop/config.json.
|
||||
|
||||
1. `default_server_config` sets the default homeserver and identity server URL for
|
||||
Riot to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
|
||||
with added support for a `server_name` under the `m.homeserver` section to display
|
||||
a custom homeserver name. Alternatively, the config can contain a `default_server_name`
|
||||
instead which is where Riot will go to get that same object, although this option is
|
||||
deprecated - see the `.well-known` link above for more information on using this option.
|
||||
Note that the `default_server_name` is used to get a complete server configuration
|
||||
whereas the `server_name` in the `default_server_config` is for display purposes only.
|
||||
* *Note*: The URLs can also be individually specified as `default_hs_url` and
|
||||
`default_is_url`, however these are deprecated. They are maintained for backwards
|
||||
compatibility with older configurations. `default_is_url` is respected only
|
||||
if `default_hs_url` is used.
|
||||
* Riot will fail to load if a mix of `default_server_config`, `default_server_name`, or
|
||||
`default_hs_url` is specified. When multiple sources are specified, it is unclear
|
||||
which should take priority and therefore the application cannot continue.
|
||||
* As of Riot 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or
|
||||
exposed to the user in the `labs` section of settings. The available
|
||||
optional experimental features vary from release to release and are [documented](labs.md). The feature flag process is
|
||||
[documented](feature-flags.md) as well.
|
||||
1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled
|
||||
or present. Useful for getting at settings which may be otherwise hidden.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
homeserver know what email template to use when talking to you.
|
||||
1. `branding`: Configures various branding and logo details, such as:
|
||||
1. `welcomeBackgroundUrl`: An image to use as a wallpaper outside the app
|
||||
during authentication flows
|
||||
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
|
||||
authentication flows
|
||||
1. `authFooterLinks`: a list of links to show in the authentication page footer:
|
||||
`[{"text": "Link text", "url": "https://link.target"}, {"text": "Other link", ...}]`
|
||||
1. `reportEvent`: Configures the dialog for reporting content to the homeserver
|
||||
admin.
|
||||
1. `adminMessageMD`: An extra message to show on the reporting dialog to
|
||||
mention homeserver-specific policies. Accepts Markdown.
|
||||
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
|
||||
server is not Riot and normally not your homeserver either. The integration server settings
|
||||
may be left blank to disable integrations.
|
||||
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
|
||||
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
|
||||
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
|
||||
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
|
||||
"Send Logs" within the application. Bug reports can be disabled by leaving the
|
||||
`bug_report_endpoint_url` out of your config file.
|
||||
1. `roomDirectory`: config for the public room directory. This section is optional.
|
||||
1. `roomDirectory.servers`: List of other homeservers' directories to include in the drop
|
||||
down list. Optional.
|
||||
1. `default_theme`: name of theme to use by default (e.g. 'light')
|
||||
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
|
||||
updates from. This should be the path to the directory containing `macos`
|
||||
and `win32` (for update packages, not installer packages).
|
||||
1. `piwik`: Analytics can be disabled by setting `piwik: false` or by leaving the piwik config
|
||||
option out of your config file. If you want to enable analytics, set `piwik` to be an object
|
||||
containing the following properties:
|
||||
1. `url`: The URL of the Piwik instance to use for collecting analytics
|
||||
1. `whitelistedHSUrls`: a list of HS URLs to not redact from the analytics
|
||||
1. `whitelistedISUrls`: a list of IS URLs to not redact from the analytics
|
||||
1. `siteId`: The Piwik Site ID to use when sending analytics to the Piwik server configured above
|
||||
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
|
||||
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
|
||||
embed static files, such as:
|
||||
1. `welcomeUrl`: Initial content shown on the outside of the app when not
|
||||
logged in. Defaults to `welcome.html` supplied with Riot.
|
||||
1. `homeUrl`: Content shown on the inside of the app when a specific room is
|
||||
not selected. By default, no home page is configured. If one is set, a
|
||||
button to access it will be shown in the top left menu.
|
||||
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
|
||||
country selectors, like the phone number input on the registration page.
|
||||
Defaults to `GB` if the given code is unknown or not provided.
|
||||
1. `settingDefaults`: Defaults for settings that support the `config` level,
|
||||
as an object mapping setting name to value (note that the "theme" setting
|
||||
is special cased to the `default_theme` in the config file).
|
||||
1. `disable_custom_urls`: disallow the user to change the
|
||||
default homeserver when signing up or logging in.
|
||||
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
|
||||
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
|
||||
Set this to your Riot instance URL if you run an unfederated server (eg:
|
||||
"https://riot.example.org").
|
||||
1. `jitsi`: Used to change the default conference options. Learn more about the
|
||||
Jitsi options at [jitsi.md](./jitsi.md).
|
||||
1. `preferredDomain`: The domain name of the preferred Jitsi instance. Defaults
|
||||
to `jitsi.riot.im`. This is used whenever a user clicks on the voice/video
|
||||
call buttons - integration managers may use a different domain.
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Riot
|
||||
appear in some websites like Facebook, and indeed Riot itself. This has to be
|
||||
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
|
||||
not possible for this to be an option in config.json. If you'd like to change
|
||||
it, you can build Riot, but run
|
||||
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
|
||||
Identity servers
|
||||
================
|
||||
|
||||
The identity server is used for inviting other users to a room via third party
|
||||
identifiers like emails and phone numbers. It is not used to store your password
|
||||
or account information.
|
||||
|
||||
As of Riot 1.4.0, all identity server functions are optional and you are
|
||||
prompted to agree to terms before data is sent to the identity server.
|
||||
|
||||
Riot will check multiple sources when looking for an identity server to use in
|
||||
the following order of preference:
|
||||
|
||||
1. The identity server set in the user's account data
|
||||
* For a new user, no value is present in their account data. It is only set
|
||||
if the user visits Settings and manually changes their identity server.
|
||||
2. The identity server provided by the `.well-known` lookup that occurred at
|
||||
login
|
||||
3. The identity server provided by the Riot config file
|
||||
|
||||
If none of these sources have an identity server set, then Riot will prompt the
|
||||
user to set an identity server first when attempting to use features that
|
||||
require one.
|
||||
|
||||
Currently the only two public identity servers are https://vector.im and
|
||||
https://matrix.org, however in the future identity servers will be
|
||||
decentralised.
|
||||
|
||||
Desktop app configuration
|
||||
=========================
|
||||
|
||||
To run multiple instances of the desktop app for different accounts, you can
|
||||
launch the executable with the `--profile` argument followed by a unique
|
||||
identifier, e.g `riot-web --profile Work` for it to run a separate profile and
|
||||
not interfere with the default one.
|
||||
|
||||
Alternatively, a custom location for the profile data can be specified using the
|
||||
`--profile-dir` flag followed by the desired path.
|
||||
|
||||
+ `%APPDATA%\$NAME\config.json` on Windows
|
||||
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
|
||||
+ `~Library/Application Support/$NAME/config.json` on macOS
|
||||
|
||||
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile
|
||||
$PROFILE` in which case it becomes `Riot-$PROFILE`.
|
||||
112
docs/feature-flags.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Feature flags
|
||||
|
||||
When developing new features for Riot, we use feature flags to give us more
|
||||
flexibility and control over when and where those features are enabled.
|
||||
|
||||
For example, flags make the following things possible:
|
||||
|
||||
* Extended testing of a feature via labs on develop
|
||||
* Enabling features when ready instead of the first moment the code is released
|
||||
* Testing a feature with a specific set of users (by enabling only on a specific
|
||||
Riot instance)
|
||||
|
||||
The size of the feature controlled by a feature flag may vary widely: it could
|
||||
be a large project like reactions or a smaller change to an existing algorithm.
|
||||
A large project might use several feature flags if it's useful to control the
|
||||
deployment of different portions independently.
|
||||
|
||||
Everyone involved in a feature (engineering, design, product, reviewers) should
|
||||
think about its deployment plan up front as best as possible so we can have the
|
||||
right feature flags in place from the start.
|
||||
|
||||
## Interaction with spec process
|
||||
|
||||
Historically, we have often used feature flags to guard client features that
|
||||
depend on unstable spec features. Unfortunately, there was never clear agreement
|
||||
about how long such a flag should live for, when it should be removed, etc.
|
||||
|
||||
Under the [new spec
|
||||
process](https://github.com/matrix-org/matrix-doc/pull/2324), server-side
|
||||
unstable features can be used by clients and enabled by default as long as
|
||||
clients commit to doing the associated clean up work once a feature stabilises.
|
||||
|
||||
## Starting work on a feature
|
||||
|
||||
When starting work on a feature, we should create a matching feature flag:
|
||||
|
||||
1. Add a new
|
||||
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
of the form:
|
||||
```js
|
||||
"feature_cats": {
|
||||
isFeature: true,
|
||||
displayName: _td("Adds cats everywhere"),
|
||||
supportedLevels: LEVELS_FEATURE,
|
||||
default: false,
|
||||
},
|
||||
```
|
||||
2. Check whether the feature is enabled as appropriate:
|
||||
```js
|
||||
SettingsStore.isFeatureEnabled("feature_cats")
|
||||
```
|
||||
3. Add the feature to the [set of labs on develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json):
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "labs"
|
||||
},
|
||||
```
|
||||
4. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
|
||||
With these steps completed, the feature is disabled by default, but can be
|
||||
enabled on develop by interested users for testing.
|
||||
|
||||
Different features may have different deployment plans for when to enable where.
|
||||
The following lists a few common options.
|
||||
|
||||
## Enabling by default on develop
|
||||
|
||||
Set the feature to `enable` in the [develop config](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json):
|
||||
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "enable"
|
||||
},
|
||||
```
|
||||
|
||||
## Enabling by default on staging and app
|
||||
|
||||
Set the feature to `enable` in the [app
|
||||
config](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json).
|
||||
|
||||
## Feature deployed successfully
|
||||
|
||||
Once we're confident that a feature is working well, we should remove the flag:
|
||||
|
||||
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
2. Remove all `isFeatureEnabled` lines that test for the feature's setting
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and [app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
|
||||
configs
|
||||
5. Celebrate! 🥳
|
||||
|
||||
## Convert to a regular setting (optional)
|
||||
|
||||
Sometimes we decide a feature should always be user-controllable as a setting
|
||||
even after it has been fully deployed. In that case, we would craft a new,
|
||||
regular setting:
|
||||
|
||||
1. Remove the feature flag from
|
||||
[settings](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
and add a regular setting with the appropriate levels for your feature
|
||||
2. Replace the `isFeatureEnabled` lines with `getValue` or similar calls
|
||||
according to the [settings
|
||||
docs](https://github.com/matrix-org/matrix-react-sdk/blob/develop/docs/settings.md)
|
||||
(checking carefully, as we may want a different mix of code paths when the
|
||||
feature is always present but gated by a setting)
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and [app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
|
||||
configs
|
||||
100
docs/jitsi-dev.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Jitsi wrapper developer docs
|
||||
|
||||
*If you're looking for information on how to set up Jitsi in your Riot, see
|
||||
[jitsi.md](./jitsi.md) instead.*
|
||||
|
||||
These docs are for developers wondering how the different conference buttons work
|
||||
within Riot. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
|
||||
|
||||
## Brief introduction to widgets
|
||||
|
||||
Widgets are embedded web applications in a room, controlled through state events, and
|
||||
have a `url` property. They are largely specified by [MSC1236](https://github.com/matrix-org/matrix-doc/issues/1236)
|
||||
and have extensions proposed under [MSC1286](https://github.com/matrix-org/matrix-doc/issues/1286).
|
||||
|
||||
The `url` is typically something we shove into an iframe with sandboxing (see `AppTile`
|
||||
in the react-sdk), though for some widgets special integration can be done. v2 widgets
|
||||
have a `data` object which helps achieve that special integration, though v1 widgets
|
||||
are best iframed and left alone.
|
||||
|
||||
Widgets have a `postMessage` API they can use to interact with Riot, which also allows
|
||||
Riot to interact with them. Typically this is most used by the sticker picker (an
|
||||
account-level widget), though widgets like the Jitsi widget will request permissions to
|
||||
get 'stuck' into the room list during a conference.
|
||||
|
||||
Widgets can be added with the `/addwidget <url>` command.
|
||||
|
||||
## Brief introduction to integration managers
|
||||
|
||||
Integration managers (like Scalar and Dimension) are accessible via the 4 squares in
|
||||
the top right of the room and provide a simple UI over top of bridges, bots, and other
|
||||
stuff to plug into a room. They are a separate service to Riot and are thus iframed
|
||||
in a dialog as well. They also have a `postMessage` API they can use to interact with
|
||||
the client to create things like widgets, give permissions to bridges, and generally
|
||||
set everything up for the integration the user is working with.
|
||||
|
||||
Integration managers do not currently have a spec associated with them, though efforts
|
||||
are underway in [MSC1286](https://github.com/matrix-org/matrix-doc/issues/1286).
|
||||
|
||||
## Widgets configured by integration managers
|
||||
|
||||
Integration managers will often "wrap" a widget by using a widget `url` which points
|
||||
to the integration manager instead of to where the user requested the widget be. For
|
||||
example, a custom widget added in an integration manager for https://matrix.org will
|
||||
end up creating a widget with a URL like `https://integrations.example.org?widgetUrl=https%3A%2F%2Fmatrix.org`.
|
||||
|
||||
The integration manager's wrapper will typically have another iframe to isolate the
|
||||
widget from the client by yet another layer. The wrapper often provides other functionality
|
||||
which might not be available on the embedded site, such as a fullscreen button or the
|
||||
communication layer with the client (all widgets *should* be talking to the client
|
||||
over `postMessage`, even if they aren't going to be using the widget APIs).
|
||||
|
||||
Widgets added with the `/addwidget` command will *not* be wrapped as they are not going
|
||||
through an integration manager. The widgets themselves *should* also work outside of
|
||||
Riot. Widgets currently have a "pop out" button which opens them in a new tab and
|
||||
therefore have no connection back to Riot.
|
||||
|
||||
## Jitsi widgets from integration managers
|
||||
|
||||
Integration managers will create an entire widget event and send it over `postMessage`
|
||||
for the client to add to the room. This means that the integration manager gets to
|
||||
decide the conference domain, conference name, and other aspects of the widget. As
|
||||
a result, users can end up with a Jitsi widget that does not use the same conference
|
||||
server they specified in their config.json - this is expected.
|
||||
|
||||
Some integration managers allow the user to change the conference name while others
|
||||
will generate one for the user.
|
||||
|
||||
## Jitsi widgets generated by Riot itself
|
||||
|
||||
When the user clicks on the call buttons by the composer, the integration manager is
|
||||
not involved in the slightest. Instead, Riot itself generates a widget event, this time
|
||||
using the config.json parameters, and publishes that to the room. If there's only two
|
||||
people in the room, a plain WebRTC call is made instead of using a widget at all - these
|
||||
are defined in the Matrix specification.
|
||||
|
||||
The Jitsi widget created by Riot uses a local `jitsi.html` wrapper (or one hosted by
|
||||
`https://riot.im/app` for desktop users or those on non-https domains) as the widget
|
||||
`url`. The wrapper has some basic functionality for talking to Riot to ensure the
|
||||
required `postMessage` calls are fulfilled.
|
||||
|
||||
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
|
||||
client .well-known data.
|
||||
|
||||
## The Jitsi wrapper in Riot
|
||||
|
||||
Whenever Riot sees a Jitsi widget, it ditches the `url` and instead replaces it with
|
||||
its local wrapper, much like what it would do when creating a widget. However, instead
|
||||
of using one from riot.im/app, it will use one local to the client instead.
|
||||
|
||||
The wrapper is used to provide a consistent experience to users, as well as being faster
|
||||
and less risky to load. The local wrapper URL is populated with the conference information
|
||||
from the original widget (which could be a v1 or v2 widget) so the user joins the right
|
||||
call.
|
||||
|
||||
Critically, when the widget URL is reconstructed it does *not* take into account the
|
||||
config.json's `preferredDomain` for Jitsi. If it did this, users would end up on different
|
||||
conference servers and therefore different calls entirely.
|
||||
|
||||
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
|
||||
client .well-known data.
|
||||
57
docs/jitsi.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Jitsi in Riot
|
||||
|
||||
Riot uses [Jitsi](https://jitsi.org/) for conference calls, which provides options for
|
||||
self-hosting your own server and supports most major platforms.
|
||||
|
||||
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
homeservers.
|
||||
|
||||
There's a number of ways to start a Jitsi call: the easiest way is to click on the
|
||||
voice or video buttons near the message composer in a room with more than 2 people. This
|
||||
will add a Jitsi widget which allows anyone in the room to join.
|
||||
|
||||
Integration managers (available through the 4 squares in the top right of the room) may
|
||||
provide their own approaches for adding Jitsi widgets.
|
||||
|
||||
## Configuring Riot to use your self-hosted Jitsi server
|
||||
|
||||
Riot will use the Jitsi server that is embedded in the widget, even if it is not the
|
||||
one you configured. This is because conference calls must be held on a single Jitsi
|
||||
server and cannot be split over multiple servers.
|
||||
|
||||
However, you can configure Riot to *start* a conference with your Jitsi server by adding
|
||||
to your [config](./config.md) the following:
|
||||
```json
|
||||
{
|
||||
"jitsi": {
|
||||
"preferredDomain": "your.jitsi.example.org"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The default is `jitsi.riot.im` (a free service offered by Riot), and the demo site for
|
||||
Jitsi uses `meet.jit.si` (also free).
|
||||
|
||||
Once you've applied the config change, refresh Riot and press the call button. This
|
||||
should start a new conference on your Jitsi server.
|
||||
|
||||
**Note**: The widget URL will point to a `jitsi.html` page hosted by Riot. The Jitsi
|
||||
domain will appear later in the URL as a configuration parameter.
|
||||
|
||||
**Hint**: If you want everyone on your homeserver to use the same Jitsi server by
|
||||
default, set the following on your homeserver's `/.well-known/matrix/client` config:
|
||||
```json
|
||||
{
|
||||
"im.vector.riot.jitsi": {
|
||||
"preferredDomain": "your.jitsi.example.org"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Mobile app support
|
||||
|
||||
Currently the Riot mobile apps do not support custom Jitsi servers and will instead
|
||||
use the default `jitsi.riot.im` server. When users on the mobile apps join the call,
|
||||
they will be joining a different conference which has the same name, but not the same
|
||||
participants. This is a known bug and which needs to be fixed.
|
||||
97
docs/labs.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Labs features
|
||||
|
||||
If Labs is enabled in the [Riot config](config.md), you can enable some of these features by going
|
||||
to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
|
||||
[#riot-web:matrix.org](https://matrix.to/#/#riot-web:matrix.org) for more information.
|
||||
|
||||
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
|
||||
dropped. Ask in the room if you are unclear about any details here.**
|
||||
|
||||
## Message pinning (`feature_pinning`)
|
||||
|
||||
Allows you to pin messages in the room. To pin a message, use the 3 dots to the right of the message
|
||||
and select "Pin".
|
||||
|
||||
## Custom status (`feature_custom_status`)
|
||||
|
||||
An experimental approach for supporting custom status messages across DMs. To set a status, click on
|
||||
your avatar next to the message composer.
|
||||
|
||||
## Custom tags (`feature_custom_tags`)
|
||||
|
||||
An experimental approach for dealing with custom tags. Custom tags will appear in the bottom portion
|
||||
of the community filter panel.
|
||||
|
||||
Setting custom tags is not supported by Riot.
|
||||
|
||||
## Render simple counters in room header (`feature_state_counters`)
|
||||
|
||||
Allows rendering of labelled counters above the message list.
|
||||
|
||||
Once enabled, send a custom state event to a room to set values:
|
||||
|
||||
1. In a room, type `/devtools` to bring up the devtools interface
|
||||
2. Click "Send Custom Event"
|
||||
3. Toggle from "Event" to "State Event"
|
||||
4. Set the event type to: `re.jki.counter` and give it a unique key
|
||||
5. Specify the content in the following format:
|
||||
|
||||
```
|
||||
{
|
||||
"link": "",
|
||||
"severity": "normal",
|
||||
"title": "my counter",
|
||||
"value": 0
|
||||
}
|
||||
```
|
||||
|
||||
That's it. Now should see your new counter under the header.
|
||||
|
||||
## Multiple integration managers (`feature_many_integration_managers`)
|
||||
|
||||
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
|
||||
|
||||
## New ways to ignore people (`feature_mjolnir`)
|
||||
|
||||
When enabled, a new settings tab appears for users to be able to manage their ban lists.
|
||||
This is a different kind of ignoring where the ignored user's messages still get rendered,
|
||||
but are hidden by default.
|
||||
|
||||
Ban lists are rooms within Matrix, proposed as [MSC2313](https://github.com/matrix-org/matrix-doc/pull/2313).
|
||||
[Mjolnir](https://github.com/matrix-org/mjolnir) is a set of moderation tools which support
|
||||
ban lists.
|
||||
|
||||
## Verifications in DMs (`feature_dm_verification`)
|
||||
|
||||
An implementation of [MSC2241](https://github.com/matrix-org/matrix-doc/pull/2241). When enabled, verification might not work with devices which don't support MSC2241.
|
||||
|
||||
This also includes a new implementation of the user & member info panel, designed to share more code between showing community members & room members. Built on top of this new panel is also a new UX for verification from the member panel.
|
||||
|
||||
## Cross-signing (in development) (`feature_cross_signing`)
|
||||
|
||||
Cross-signing ([MSC1756](https://github.com/matrix-org/matrix-doc/pull/1756))
|
||||
improves the device verification experience by allowing you to verify a user
|
||||
instead of verifying each of their devices.
|
||||
|
||||
This feature is still in development and will be landing in several chunks.
|
||||
|
||||
## Bridge info tab (`feature_bridge_state`)
|
||||
|
||||
Adds a "Bridge Info" tab to the Room Settings dialog, if a compatible bridge is
|
||||
present in the room. The Bridge info tab pulls information from the `m.bridge` state event ([MSC2346](https://github.com/matrix-org/matrix-doc/pull/2346)). Since the feature is based upon a MSC, most
|
||||
bridges are not expected to be compatible, and users should not rely on this
|
||||
tab as the single source of truth just yet.
|
||||
|
||||
## Presence indicator in room list (`feature_presence_in_room_list`)
|
||||
|
||||
This adds a presence indicator in the room list next to DM rooms where the other
|
||||
person is online.
|
||||
|
||||
## Custom themes (`feature_custom_themes`)
|
||||
|
||||
Custom themes are possible through Riot's [theme support](./theming.md), though
|
||||
normally these themes need to be defined in the config for Riot. This labs flag
|
||||
adds an ability for end users to add themes themselves by using a URL to the JSON
|
||||
theme definition.
|
||||
|
||||
For some sample themes, check out [aaronraimist/riot-web-themes](https://github.com/aaronraimist/riot-web-themes).
|
||||
53
docs/memory-profiles-and-leaks.md
Normal file
@@ -0,0 +1,53 @@
|
||||
## Memory leaks
|
||||
|
||||
Riot usually emits slow behaviour just before it is about to crash. Getting a
|
||||
memory snapshot (below) just before that happens is ideal in figuring out what
|
||||
is going wrong.
|
||||
|
||||
Common symptoms are clicking on a room and it feels like the tab froze and scrolling
|
||||
becoming jumpy/staggered.
|
||||
|
||||
If you receive a white screen (electron) or the chrome crash page, it is likely
|
||||
run out of memory and it is too late for a memory profile. Please do report when
|
||||
this happens though so we can try and narrow down what might have gone wrong.
|
||||
|
||||
## Memory profiles/snapshots
|
||||
|
||||
When investigating memory leaks/problems it's usually important to compare snapshots
|
||||
from different points in the Riot session lifecycle. Most importantly, a snapshot
|
||||
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
|
||||
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
|
||||
memory usage for the app - anything after that is at risk of hiding the memory leak
|
||||
and anything newer is still in the warmup stages of the app.
|
||||
|
||||
**Memory profiles can contain sensitive information.** If you are submitting a memory
|
||||
profile to us for debugging purposes, please pick the appropriate Riot developer and
|
||||
send them over an encrypted private message. *Do not share your memory profile in
|
||||
public channels or with people you do not trust.*
|
||||
|
||||
### Taking a memory profile (Firefox)
|
||||
|
||||
1. Press CTRL+SHIFT+I (I as in eye).
|
||||
2. Click the Memory tab.
|
||||
3. Press the camera icon in the top left of the pane.
|
||||
4. Wait a bit (coffee is a good option).
|
||||
5. When the save button appears on the left side of the panel, click it to save the
|
||||
profile locally.
|
||||
6. Compress the file (gzip or regular zip) to make the file smaller.
|
||||
7. Send the compressed file to whoever asked for it (if you trust them).
|
||||
|
||||
While the profile is in progress, the tab might be frozen or unresponsive.
|
||||
|
||||
### Taking a memory profile (Chrome/Desktop)
|
||||
|
||||
1. Press CTRL+SHIFT+I (I as in eye).
|
||||
2. Click the Memory tab.
|
||||
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
|
||||
4. Click "Take Snapshot".
|
||||
5. Wait a bit (coffee is a good option).
|
||||
6. When the save button appears on the left side of the panel, click it to save the
|
||||
profile locally.
|
||||
7. Compress the file (gzip or regular zip) to make the file smaller.
|
||||
8. Send the compressed file to whoever asked for it (if you trust them).
|
||||
|
||||
While the profile is in progress, the tab might be frozen or unresponsive.
|
||||
60
docs/native-node-modules.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Native Node Modules
|
||||
|
||||
For some features, the desktop version of Riot can make use of native Node
|
||||
modules. These allow Riot to integrate with the desktop in ways that a browser
|
||||
cannot.
|
||||
|
||||
While native modules enable powerful new features, they must be complied for
|
||||
each operating system. For official Riot releases, we will always build these
|
||||
modules from source to ensure we can trust the compiled output. In the future,
|
||||
we may offer a pre-compiled path for those who want to use these features in a
|
||||
custom build of Riot without installing the various build tools required.
|
||||
|
||||
Do note that compiling a module for a particular operating system
|
||||
(Linux/macOS/Windows) will need to be done on that operating system.
|
||||
Cross-compiling from a host OS for a different target OS may be possible, but
|
||||
we don't support this flow with Riot dependencies at this time.
|
||||
|
||||
At the moment, we need to make some changes to the Riot release process before
|
||||
we can support native Node modules at release time, so these features are
|
||||
currently disabled by default until that is resolved. The following sections
|
||||
explain the manual steps you can use with a custom build of Riot to enable
|
||||
these features if you'd like to try them out.
|
||||
|
||||
## Adding Seshat for search in E2E encrypted rooms
|
||||
|
||||
Seshat is a native Node module that adds support for local event indexing and
|
||||
full text search in E2E encrypted rooms.
|
||||
|
||||
Since Seshat is written in Rust, the Rust compiler and related tools need to be
|
||||
installed before installing Seshat itself. To install Rust please consult the
|
||||
official Rust [documentation](https://www.rust-lang.org/tools/install).
|
||||
|
||||
Seshat also depends on the SQLCipher library to store its data in encrypted form
|
||||
on disk. You'll need to install it via your OS package manager.
|
||||
|
||||
After installing the Rust compiler and SQLCipher, Seshat support can be added
|
||||
using yarn inside the `electron_app/` directory:
|
||||
|
||||
yarn add matrix-seshat
|
||||
|
||||
You will have to rebuild the native libraries against electron's version of
|
||||
of node rather than your system node, using the `electron-build-env` tool.
|
||||
This is also needed to when pulling in changes to Seshat using `yarn link`.
|
||||
Again from the `electron_app/` directory:
|
||||
|
||||
yarn add electron-build-env
|
||||
|
||||
Recompiling Seshat itself can be done like so:
|
||||
|
||||
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
|
||||
|
||||
Please make sure to include all the `--` as well as the `--release` command line
|
||||
switch at the end. Modify your electron version accordingly depending on the
|
||||
version that is installed on your system.
|
||||
|
||||
After this is done the Electron version of Riot can be run from the main folder
|
||||
as usual using:
|
||||
|
||||
yarn electron
|
||||
|
||||
82
docs/review.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Review Guidelines
|
||||
|
||||
The following summarises review guidelines that we follow for pull requests in
|
||||
Riot Web and other supporting repos. These are just guidelines (not strict
|
||||
rules) and may be updated over time.
|
||||
|
||||
## Code Review
|
||||
|
||||
When reviewing code, here are some things we look for and also things we avoid:
|
||||
|
||||
### We review for
|
||||
|
||||
* Correctness
|
||||
* Performance
|
||||
* Accessibility
|
||||
* Security
|
||||
* Comments and documentation where needed
|
||||
* Sharing knowledge of different areas among the team
|
||||
* Ensuring it's something we're comfortable maintaining for the long term
|
||||
* Progress indicators and local echo where appropriate with network activity
|
||||
|
||||
### We should avoid
|
||||
|
||||
* Style nits that are already handled by the linter
|
||||
* Dramatically increasing scope
|
||||
|
||||
### Good practices
|
||||
|
||||
* Use empathetic language
|
||||
* See also [Mindful Communication in Code
|
||||
Reviews](https://kickstarter.engineering/a-guide-to-mindful-communication-in-code-reviews-48aab5282e5e)
|
||||
and [How to Do Code Reviews Like a Human](https://mtlynch.io/human-code-reviews-1/)
|
||||
* Authors should prefer smaller commits for easier reviewing and bisection
|
||||
* Reviewers should be explicit about required versus optional changes
|
||||
* Reviews are conversations and the PR author should feel comfortable
|
||||
discussing and pushing back on changes before making them
|
||||
* Core team should lead by example through their tone and language
|
||||
* Take the time to thank and point out good code changes
|
||||
* Using softer language like "please" and "what do you think?" goes a long way
|
||||
towards making others feel like colleagues working towards a common goal
|
||||
|
||||
### Workflow
|
||||
|
||||
* Authors should request review from the riot-web team by default (if someone on
|
||||
the team is clearly the expert in an area, a direct review request to them may
|
||||
be more appropriate)
|
||||
* Reviewers should remove the team review request and request review from
|
||||
themselves when starting a review to avoid double review
|
||||
* If there are multiple related PRs authors should reference each of the PRs in
|
||||
the others before requesting review. Reviewers might start reviewing from
|
||||
different places and could miss other required PRs.
|
||||
* Avoid force pushing to a PR after the first round of review
|
||||
* Use the GitHub default of merge commits when landing (avoid alternate options
|
||||
like squash or rebase)
|
||||
* PR author merges after review (assuming they have write access)
|
||||
* Assign issues only when in progress to indicate to others what can be picked
|
||||
up
|
||||
|
||||
## Design and Product Review
|
||||
|
||||
We want to ensure that all changes to Riot fit with our design and product
|
||||
vision. We often request review from those teams so they can provide their
|
||||
perspective.
|
||||
|
||||
In more detail, our usual process for changes that affect the UI or alter user
|
||||
functionality is:
|
||||
|
||||
* For changes that will go live when merged, always flag Design and Product
|
||||
teams as appropriate
|
||||
* For changes guarded by a feature flag, Design and Product review is not
|
||||
required (though may still be useful) since we can continue tweaking
|
||||
|
||||
As it can be difficult to review design work from looking at just the changed
|
||||
files in a PR, authors should be prepared for Design and / or Product teams to
|
||||
request a link to an ad-hoc build of Riot (hosted anywhere) that can be used for
|
||||
the review. In the future, we [hope to automate
|
||||
this](https://github.com/vector-im/riot-web/issues/12624) for every PR.
|
||||
|
||||
Before starting work on a feature, it's best to ensure your plan aligns well
|
||||
with our vision for Riot. Please chat with the team in
|
||||
[#riot-dev:matrix.org](https://matrix.to/#/#riot-dev:matrix.org) before you
|
||||
start so we can ensure it's something we'd be willing to merge.
|
||||
@@ -11,11 +11,11 @@ As of Jan 2017, skins are not fully supported; riot is the only available skin.
|
||||
To define a theme for Riot:
|
||||
|
||||
1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
|
||||
2. Fork `src/skins/vector/css/themes/dark.scss` to be teal.scss
|
||||
3. Fork `src/skins/vector/css/themes/_base.scss` to be _teal.scss
|
||||
4. Override variables in _teal.scss as desired. You may wish to delete ones
|
||||
which don't differ from _base.scss, to make it clear which are being
|
||||
overridden. If every single colour is being changed (as per _dark.scss)
|
||||
2. Fork `src/skins/vector/css/themes/dark.scss` to be `teal.scss`
|
||||
3. Fork `src/skins/vector/css/themes/_base.scss` to be `_teal.scss`
|
||||
4. Override variables in `_teal.scss` as desired. You may wish to delete ones
|
||||
which don't differ from `_base.scss`, to make it clear which are being
|
||||
overridden. If every single colour is being changed (as per `_dark.scss`)
|
||||
then you might as well keep them all.
|
||||
5. Add the theme to the list of entrypoints in webpack.config.js
|
||||
6. Add the theme to the list of themes in matrix-react-sdk's UserSettings.js
|
||||
@@ -23,3 +23,58 @@ To define a theme for Riot:
|
||||
|
||||
In future, the assets for a theme will probably be gathered together into a
|
||||
single directory tree.
|
||||
|
||||
Custom Themes
|
||||
=============
|
||||
|
||||
Themes derived from the built in themes may also be defined in settings.
|
||||
|
||||
To avoid name collisions, the internal name of a theme is
|
||||
`custom-${theme.name}`. So if you want to set the custom theme below as the
|
||||
default theme, you would use `default_theme: "custom-Electric Blue"`.
|
||||
|
||||
eg. in config.json:
|
||||
|
||||
```
|
||||
"settingDefaults": {
|
||||
"custom_themes": [
|
||||
{
|
||||
"name": "Electric Blue",
|
||||
"is_dark": false,
|
||||
"colors": {
|
||||
"accent-color": "#3596fc",
|
||||
"primary-color": "#368bd6",
|
||||
"warning-color": "#ff4b55",
|
||||
"sidebar-color": "#27303a",
|
||||
"roomlist-background-color": "#f3f8fd",
|
||||
"roomlist-text-color": "#2e2f32",
|
||||
"roomlist-text-secondary-color": "#61708b",
|
||||
"roomlist-highlights-color": "#ffffff",
|
||||
"roomlist-separator-color": "#e3e8f0",
|
||||
"timeline-background-color": "#ffffff",
|
||||
"timeline-text-color": "#2e2f32",
|
||||
"timeline-text-secondary-color": "#61708b",
|
||||
"timeline-highlights-color": "#f3f8fd"
|
||||
}
|
||||
}, {
|
||||
"name": "Deep Purple",
|
||||
"is_dark": true,
|
||||
"colors": {
|
||||
"accent-color": "#6503b3",
|
||||
"primary-color": "#368bd6",
|
||||
"warning-color": "#b30356",
|
||||
"sidebar-color": "#15171B",
|
||||
"roomlist-background-color": "#22262E",
|
||||
"roomlist-text-color": "#A1B2D1",
|
||||
"roomlist-text-secondary-color": "#EDF3FF",
|
||||
"roomlist-highlights-color": "#343A46",
|
||||
"roomlist-separator-color": "#a1b2d1",
|
||||
"timeline-background-color": "#181b21",
|
||||
"timeline-text-color": "#EDF3FF",
|
||||
"timeline-text-secondary-color": "#A1B2D1",
|
||||
"timeline-highlights-color": "#22262E"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
## Requirements
|
||||
|
||||
- A working [Development Setup](../../#setting-up-a-dev-environment)
|
||||
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
|
||||
- Latest LTS version of Node.js installed
|
||||
- Be able to understand English
|
||||
- Be able to understand the language you want to translate riot-web into
|
||||
|
||||
@@ -30,9 +32,15 @@ function getColorName(hex) {
|
||||
|
||||
1. Check if the import ``import { _t } from 'matrix-react-sdk/lib/languageHandler';`` is present. If not add it to the other import statements. Also import `_td` if needed.
|
||||
1. Add ``_t()`` to your string. (Don't forget curly braces when you assign an expression to JSX attributes in the render method). If the string is introduced at a point before the translation system has not yet been initialized, use `_td()` instead, and call `_t()` at the appropriate time.
|
||||
1. Run `npm run i18n` to update ``src/i18n/strings/en_EN.json`` (if it fails because it can't find the script, your dev environment predates the script, so reinstall/link react-sdk with `npm link ../matrix-react-sdk`). If it segfaults, you may be on Node 6, so try a newer version of node.
|
||||
1. Run `yarn i18n` to update ``src/i18n/strings/en_EN.json``
|
||||
1. If you added a string with a plural, you can add other English plural variants to ``src/i18n/strings/en_EN.json`` (remeber to edit the one in the same project as the source file containing your new translation).
|
||||
|
||||
## Editing existing strings
|
||||
|
||||
1. Edit every occurrence of the string inside `_t()` and `_td()` in the JSX files.
|
||||
1. Run `yarn i18n` to update `src/i18n/strings/en_EN.json`. (Be sure to run this in the same project as the JSX files you just edited.)
|
||||
1. Run `yarn prunei18n` to remove the old string from `src/i18n/strings/*.json`.
|
||||
|
||||
## Adding variables inside a string.
|
||||
|
||||
1. Extend your ``_t()`` call. Instead of ``_t(STRING)`` use ``_t(STRING, {})``
|
||||
|
||||
28
electron_app/build/entitlements.mac.plist
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<!-- Entitlements from electron-builder's defaults
|
||||
(https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/entitlements.mac.plist)
|
||||
nb. This does *not* include the app sandbox: at the time of adding this file,
|
||||
we were using electron-builder 21.2.0 which does not have the sandbox entitlement.
|
||||
Latest electron-builder does, but it appears to be causing issues:
|
||||
(https://github.com/electron-userland/electron-builder/issues/4390)
|
||||
-->
|
||||
<!-- https://github.com/electron/electron-notarize#prerequisites -->
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
|
||||
<!-- Our own additional entitlements (we need to access the camera and
|
||||
mic for VoIP calls -->
|
||||
<key>com.apple.security.device.camera</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 702 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 13 KiB |
@@ -2,11 +2,12 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "0.14.2",
|
||||
"version": "1.6.0",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"author": "New Vector Ltd.",
|
||||
"dependencies": {
|
||||
"auto-launch": "^5.0.1",
|
||||
"electron-store": "^2.0.0",
|
||||
"electron-window-state": "^4.1.0",
|
||||
"minimist": "^1.2.0",
|
||||
"png-to-ico": "^1.0.2"
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
This directory contains the config file for the official riot.im distribution
|
||||
of Riot Desktop. You probably do not want to build with this config unless
|
||||
you're building the official riot.im distribution, or you'll find your builds
|
||||
will replace themselves with the riot.im build.
|
||||
of Riot Desktop.
|
||||
|
||||
You probably do not want to build with this config unless you're building the
|
||||
official riot.im distribution, or you'll find your builds will replace
|
||||
themselves with the riot.im build.
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
{
|
||||
"update_base_url": "https://riot.im/download/desktop/update/",
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"update_base_url": "https://packages.riot.im/desktop/update/",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"integrations_widgets_urls": [
|
||||
"https://scalar-staging.riot.im/scalar/api",
|
||||
"https://scalar.vector.im/api"
|
||||
"https://scalar.vector.im/_matrix/integrations/v1",
|
||||
"https://scalar.vector.im/api",
|
||||
"https://scalar-staging.vector.im/_matrix/integrations/v1",
|
||||
"https://scalar-staging.vector.im/api",
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
"matrix.org"
|
||||
@@ -18,6 +20,14 @@
|
||||
},
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1
|
||||
"siteId": 1,
|
||||
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
|
||||
},
|
||||
"features": {
|
||||
"feature_cross_signing": "enable"
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false,
|
||||
"https://matrix-client.matrix.org": false
|
||||
}
|
||||
}
|
||||
|
||||
1
electron_app/riot.im/env.sh
Normal file
@@ -0,0 +1 @@
|
||||
export OSSLSIGNCODE_SIGNARGS='-pkcs11module /Library/Frameworks/eToken.framework/Versions/Current/libeToken.dylib -pkcs11engine /usr/local/lib/engines/engine_pkcs11.so -certs electron_app/riot.im/New_Vector_Ltd.pem -key 0a3271cbc1ec0fd8afb37f6bbe0cd65ba08d3b4d -t http://timestamp.comodoca.com -verbose'
|
||||
@@ -1,7 +1,8 @@
|
||||
/*
|
||||
Copyright 2016 Aviral Dasgupta
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
|
||||
Copyright 2018, 2019 New Vector Ltd
|
||||
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -22,19 +23,59 @@ limitations under the License.
|
||||
const checkSquirrelHooks = require('./squirrelhooks');
|
||||
if (checkSquirrelHooks()) return;
|
||||
|
||||
const argv = require('minimist')(process.argv);
|
||||
const electron = require('electron');
|
||||
const argv = require('minimist')(process.argv, {
|
||||
alias: {help: "h"},
|
||||
});
|
||||
|
||||
const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol} = require('electron');
|
||||
const AutoLaunch = require('auto-launch');
|
||||
const path = require('path');
|
||||
|
||||
const tray = require('./tray');
|
||||
const vectorMenu = require('./vectormenu');
|
||||
const webContentsHandler = require('./webcontents-handler');
|
||||
const updater = require('./updater');
|
||||
const {getProfileFromDeeplink, protocolInit, recordSSOSession} = require('./protocol');
|
||||
|
||||
const windowStateKeeper = require('electron-window-state');
|
||||
const Store = require('electron-store');
|
||||
|
||||
if (argv.profile) {
|
||||
electron.app.setPath('userData', `${electron.app.getPath('userData')}-${argv.profile}`);
|
||||
const fs = require('fs');
|
||||
const afs = fs.promises;
|
||||
|
||||
let Seshat = null;
|
||||
|
||||
try {
|
||||
Seshat = require('matrix-seshat');
|
||||
} catch (e) {
|
||||
if (e.code === "MODULE_NOT_FOUND") {
|
||||
console.log("Seshat isn't installed, event indexing is disabled.");
|
||||
} else {
|
||||
console.warn("Seshat unexpected error:", e);
|
||||
}
|
||||
}
|
||||
|
||||
if (argv["help"]) {
|
||||
console.log("Options:");
|
||||
console.log(" --profile-dir {path}: Path to where to store the profile.");
|
||||
console.log(" --profile {name}: Name of alternate profile to use, allows for running multiple accounts.");
|
||||
console.log(" --devtools: Install and use react-devtools and react-perf.");
|
||||
console.log(" --no-update: Disable automatic updating.");
|
||||
console.log(" --hidden: Start the application hidden in the system tray.");
|
||||
console.log(" --help: Displays this help message.");
|
||||
console.log("And more such as --proxy, see:" +
|
||||
"https://electronjs.org/docs/api/chrome-command-line-switches#supported-chrome-command-line-switches");
|
||||
app.exit();
|
||||
}
|
||||
|
||||
// check if we are passed a profile in the SSO callback url
|
||||
const userDataPathInProtocol = getProfileFromDeeplink(argv["_"]);
|
||||
if (userDataPathInProtocol) {
|
||||
app.setPath('userData', userDataPathInProtocol);
|
||||
} else if (argv['profile-dir']) {
|
||||
app.setPath('userData', argv['profile-dir']);
|
||||
} else if (argv['profile']) {
|
||||
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
|
||||
}
|
||||
|
||||
let vectorConfig = {};
|
||||
@@ -47,9 +88,41 @@ try {
|
||||
// Continue with the defaults (ie. an empty config)
|
||||
}
|
||||
|
||||
try {
|
||||
// Load local config and use it to override values from the one baked with the build
|
||||
const localConfig = require(path.join(app.getPath('userData'), 'config.json'));
|
||||
|
||||
// If the local config has a homeserver defined, don't use the homeserver from the build
|
||||
// config. This is to avoid a problem where Riot thinks there are multiple homeservers
|
||||
// defined, and panics as a result.
|
||||
const homeserverProps = ['default_is_url', 'default_hs_url', 'default_server_name', 'default_server_config'];
|
||||
if (Object.keys(localConfig).find(k => homeserverProps.includes(k))) {
|
||||
// Rip out all the homeserver options from the vector config
|
||||
vectorConfig = Object.keys(vectorConfig)
|
||||
.filter(k => !homeserverProps.includes(k))
|
||||
.reduce((obj, key) => {obj[key] = vectorConfig[key]; return obj;}, {});
|
||||
}
|
||||
|
||||
vectorConfig = Object.assign(vectorConfig, localConfig);
|
||||
} catch (e) {
|
||||
// Could not load local config, this is expected in most cases.
|
||||
}
|
||||
|
||||
const eventStorePath = path.join(app.getPath('userData'), 'EventStore');
|
||||
const store = new Store({ name: "electron-config" });
|
||||
|
||||
let eventIndex = null;
|
||||
|
||||
let mainWindow = null;
|
||||
global.appQuitting = false;
|
||||
|
||||
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
|
||||
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
||||
const iconPath = path.join(__dirname, "..", "..", "img", iconFile);
|
||||
const trayConfig = {
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
};
|
||||
|
||||
// handle uncaught errors otherwise it displays
|
||||
// stack traces in popup dialogs, which is terrible (which
|
||||
@@ -62,14 +135,14 @@ process.on('uncaughtException', function(error) {
|
||||
});
|
||||
|
||||
let focusHandlerAttached = false;
|
||||
electron.ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
electron.app.setBadgeCount(count);
|
||||
if (count === 0) {
|
||||
ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
app.setBadgeCount(count);
|
||||
if (count === 0 && mainWindow) {
|
||||
mainWindow.flashFrame(false);
|
||||
}
|
||||
});
|
||||
|
||||
electron.ipcMain.on('loudNotification', function() {
|
||||
ipcMain.on('loudNotification', function() {
|
||||
if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) {
|
||||
mainWindow.flashFrame(true);
|
||||
mainWindow.once('focus', () => {
|
||||
@@ -80,40 +153,300 @@ electron.ipcMain.on('loudNotification', function() {
|
||||
}
|
||||
});
|
||||
|
||||
let powerSaveBlockerId;
|
||||
electron.ipcMain.on('app_onAction', function(ev, payload) {
|
||||
let powerSaveBlockerId = null;
|
||||
ipcMain.on('app_onAction', function(ev, payload) {
|
||||
switch (payload.action) {
|
||||
case 'call_state':
|
||||
if (powerSaveBlockerId && electron.powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (powerSaveBlockerId !== null && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (payload.state === 'ended') {
|
||||
electron.powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
powerSaveBlockerId = null;
|
||||
}
|
||||
} else {
|
||||
if (payload.state === 'connected') {
|
||||
powerSaveBlockerId = electron.powerSaveBlocker.start('prevent-display-sleep');
|
||||
if (powerSaveBlockerId === null && payload.state === 'connected') {
|
||||
powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep');
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
|
||||
|
||||
const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => {
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (!mainWindow.isVisible()) mainWindow.show();
|
||||
if (mainWindow.isMinimized()) mainWindow.restore();
|
||||
mainWindow.focus();
|
||||
}
|
||||
autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName, releaseDate, updateURL) => {
|
||||
if (!mainWindow) return;
|
||||
// forward to renderer
|
||||
mainWindow.webContents.send('update-downloaded', {
|
||||
releaseNotes,
|
||||
releaseName,
|
||||
releaseDate,
|
||||
updateURL,
|
||||
});
|
||||
});
|
||||
|
||||
if (shouldQuit) {
|
||||
ipcMain.on('ipcCall', async function(ev, payload) {
|
||||
if (!mainWindow) return;
|
||||
|
||||
const args = payload.args || [];
|
||||
let ret;
|
||||
|
||||
switch (payload.name) {
|
||||
case 'getUpdateFeedUrl':
|
||||
ret = autoUpdater.getFeedURL();
|
||||
break;
|
||||
case 'getAutoLaunchEnabled':
|
||||
ret = await launcher.isEnabled();
|
||||
break;
|
||||
case 'setAutoLaunchEnabled':
|
||||
if (args[0]) {
|
||||
launcher.enable();
|
||||
} else {
|
||||
launcher.disable();
|
||||
}
|
||||
break;
|
||||
case 'getMinimizeToTrayEnabled':
|
||||
ret = tray.hasTray();
|
||||
break;
|
||||
case 'setMinimizeToTrayEnabled':
|
||||
if (args[0]) {
|
||||
// Create trayIcon icon
|
||||
tray.create(trayConfig);
|
||||
} else {
|
||||
tray.destroy();
|
||||
}
|
||||
store.set('minimizeToTray', args[0]);
|
||||
break;
|
||||
case 'getAutoHideMenuBarEnabled':
|
||||
ret = global.mainWindow.isMenuBarAutoHide();
|
||||
break;
|
||||
case 'setAutoHideMenuBarEnabled':
|
||||
store.set('autoHideMenuBar', args[0]);
|
||||
global.mainWindow.setAutoHideMenuBar(args[0]);
|
||||
global.mainWindow.setMenuBarVisibility(!args[0]);
|
||||
break;
|
||||
case 'getAppVersion':
|
||||
ret = app.getVersion();
|
||||
break;
|
||||
case 'focusWindow':
|
||||
if (mainWindow.isMinimized()) {
|
||||
mainWindow.restore();
|
||||
} else if (!mainWindow.isVisible()) {
|
||||
mainWindow.show();
|
||||
} else {
|
||||
mainWindow.focus();
|
||||
}
|
||||
break;
|
||||
case 'getConfig':
|
||||
ret = vectorConfig;
|
||||
break;
|
||||
case 'navigateBack':
|
||||
if (mainWindow.webContents.canGoBack()) {
|
||||
mainWindow.webContents.goBack();
|
||||
}
|
||||
break;
|
||||
case 'navigateForward':
|
||||
if (mainWindow.webContents.canGoForward()) {
|
||||
mainWindow.webContents.goForward();
|
||||
}
|
||||
break;
|
||||
case 'startSSOFlow':
|
||||
recordSSOSession(args[0]);
|
||||
break;
|
||||
|
||||
default:
|
||||
mainWindow.webContents.send('ipcReply', {
|
||||
id: payload.id,
|
||||
error: "Unknown IPC Call: " + payload.name,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
mainWindow.webContents.send('ipcReply', {
|
||||
id: payload.id,
|
||||
reply: ret,
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('seshat', async function(ev, payload) {
|
||||
if (!mainWindow) return;
|
||||
|
||||
const sendError = (id, e) => {
|
||||
const error = {
|
||||
message: e.message
|
||||
}
|
||||
|
||||
mainWindow.webContents.send('seshatReply', {
|
||||
id:id,
|
||||
error: error
|
||||
});
|
||||
}
|
||||
|
||||
const args = payload.args || [];
|
||||
let ret;
|
||||
|
||||
switch (payload.name) {
|
||||
case 'supportsEventIndexing':
|
||||
if (Seshat === null) ret = false;
|
||||
else ret = true;
|
||||
break;
|
||||
|
||||
case 'initEventIndex':
|
||||
if (eventIndex === null) {
|
||||
try {
|
||||
await afs.mkdir(eventStorePath, {recursive: true});
|
||||
eventIndex = new Seshat(eventStorePath, {passphrase: "DEFAULT_PASSPHRASE"});
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'closeEventIndex':
|
||||
eventIndex = null;
|
||||
break;
|
||||
|
||||
case 'deleteEventIndex':
|
||||
const deleteFolderRecursive = async(p) => {
|
||||
for (let entry of await afs.readdir(p)) {
|
||||
const curPath = path.join(p, entry);
|
||||
await afs.unlink(curPath);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await deleteFolderRecursive(eventStorePath);
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'isEventIndexEmpty':
|
||||
if (eventIndex === null) ret = true;
|
||||
else ret = await eventIndex.isEmpty();
|
||||
break;
|
||||
|
||||
case 'addEventToIndex':
|
||||
try {
|
||||
eventIndex.addEvent(args[0], args[1]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'commitLiveEvents':
|
||||
try {
|
||||
ret = await eventIndex.commit();
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'searchEventIndex':
|
||||
try {
|
||||
ret = await eventIndex.search(args[0]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'addHistoricEvents':
|
||||
if (eventIndex === null) ret = false;
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.addHistoricEvents(
|
||||
args[0], args[1], args[2]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'getStats':
|
||||
if (eventIndex === null) ret = 0;
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.getStats();
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'removeCrawlerCheckpoint':
|
||||
if (eventIndex === null) ret = false;
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.removeCrawlerCheckpoint(args[0]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'addCrawlerCheckpoint':
|
||||
if (eventIndex === null) ret = false;
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.addCrawlerCheckpoint(args[0]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'loadFileEvents':
|
||||
if (eventIndex === null) ret = [];
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.loadFileEvents(args[0]);
|
||||
} catch (e) {
|
||||
sendError(payload.id, e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'loadCheckpoints':
|
||||
if (eventIndex === null) ret = [];
|
||||
else {
|
||||
try {
|
||||
ret = await eventIndex.loadCheckpoints();
|
||||
} catch (e) {
|
||||
ret = [];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
mainWindow.webContents.send('seshatReply', {
|
||||
id: payload.id,
|
||||
error: "Unknown IPC Call: " + payload.name,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
mainWindow.webContents.send('seshatReply', {
|
||||
id: payload.id,
|
||||
reply: ret,
|
||||
});
|
||||
});
|
||||
|
||||
app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
|
||||
|
||||
const gotLock = app.requestSingleInstanceLock();
|
||||
if (!gotLock) {
|
||||
console.log('Other instance detected: exiting');
|
||||
electron.app.exit();
|
||||
app.exit();
|
||||
}
|
||||
|
||||
// do this after we know we are the primary instance of the app
|
||||
protocolInit();
|
||||
|
||||
const launcher = new AutoLaunch({
|
||||
name: vectorConfig.brand || 'Riot',
|
||||
@@ -123,101 +456,150 @@ const launcher = new AutoLaunch({
|
||||
},
|
||||
});
|
||||
|
||||
const settings = {
|
||||
'auto-launch': {
|
||||
get: launcher.isEnabled,
|
||||
set: function(bool) {
|
||||
if (bool) {
|
||||
return launcher.enable();
|
||||
} else {
|
||||
return launcher.disable();
|
||||
}
|
||||
},
|
||||
// Register the scheme the app is served from as 'standard'
|
||||
// which allows things like relative URLs and IndexedDB to
|
||||
// work.
|
||||
// Also mark it as secure (ie. accessing resources from this
|
||||
// protocol and HTTPS won't trigger mixed content warnings).
|
||||
protocol.registerSchemesAsPrivileged([{
|
||||
scheme: 'vector',
|
||||
privileges: {
|
||||
standard: true,
|
||||
secure: true,
|
||||
supportFetchAPI: true,
|
||||
},
|
||||
};
|
||||
}]);
|
||||
|
||||
electron.ipcMain.on('settings_get', async function(ev) {
|
||||
const data = {};
|
||||
|
||||
try {
|
||||
await Promise.all(Object.keys(settings).map(async function (setting) {
|
||||
data[setting] = await settings[setting].get();
|
||||
}));
|
||||
|
||||
ev.sender.send('settings', data);
|
||||
} catch(e) { console.error(e); }
|
||||
});
|
||||
|
||||
electron.ipcMain.on('settings_set', function(ev, key, value) {
|
||||
console.log(key, value);
|
||||
if (settings[key] && settings[key].set) {
|
||||
settings[key].set(value);
|
||||
}
|
||||
});
|
||||
|
||||
electron.app.on('ready', () => {
|
||||
|
||||
if (argv.devtools) {
|
||||
app.on('ready', () => {
|
||||
if (argv['devtools']) {
|
||||
try {
|
||||
const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
|
||||
installExtension(REACT_DEVELOPER_TOOLS)
|
||||
const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
|
||||
installExt(REACT_DEVELOPER_TOOLS)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
installExtension(REACT_PERF)
|
||||
installExt(REACT_PERF)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
} catch(e) {console.log(e);}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
protocol.registerFileProtocol('vector', (request, callback) => {
|
||||
if (request.method !== 'GET') {
|
||||
callback({error: -322}); // METHOD_NOT_SUPPORTED from chromium/src/net/base/net_error_list.h
|
||||
return null;
|
||||
}
|
||||
|
||||
if (vectorConfig.update_base_url) {
|
||||
console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`);
|
||||
updater.start(vectorConfig.update_base_url);
|
||||
const parsedUrl = new URL(request.url);
|
||||
if (parsedUrl.protocol !== 'vector:') {
|
||||
callback({error: -302}); // UNKNOWN_URL_SCHEME
|
||||
return;
|
||||
}
|
||||
if (parsedUrl.host !== 'vector') {
|
||||
callback({error: -105}); // NAME_NOT_RESOLVED
|
||||
return;
|
||||
}
|
||||
|
||||
const target = parsedUrl.pathname.split('/');
|
||||
|
||||
// path starts with a '/'
|
||||
if (target[0] !== '') {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
|
||||
if (target[target.length - 1] == '') {
|
||||
target[target.length - 1] = 'index.html';
|
||||
}
|
||||
|
||||
let baseDir;
|
||||
// first part of the path determines where we serve from
|
||||
if (target[1] === 'webapp') {
|
||||
baseDir = __dirname + "/../../webapp";
|
||||
} else {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
|
||||
// Normalise the base dir and the target path separately, then make sure
|
||||
// the target path isn't trying to back out beyond its root
|
||||
baseDir = path.normalize(baseDir);
|
||||
|
||||
const relTarget = path.normalize(path.join(...target.slice(2)));
|
||||
if (relTarget.startsWith('..')) {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
const absTarget = path.join(baseDir, relTarget);
|
||||
|
||||
callback({
|
||||
path: absTarget,
|
||||
});
|
||||
}, (error) => {
|
||||
if (error) console.error('Failed to register protocol');
|
||||
});
|
||||
|
||||
if (argv['no-update']) {
|
||||
console.log('Auto update disabled via command line flag "--no-update"');
|
||||
} else if (vectorConfig['update_base_url']) {
|
||||
console.log(`Starting auto update with base URL: ${vectorConfig['update_base_url']}`);
|
||||
updater.start(vectorConfig['update_base_url']);
|
||||
} else {
|
||||
console.log('No update_base_url is defined: auto update is disabled');
|
||||
}
|
||||
|
||||
const iconPath = `${__dirname}/../img/riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
||||
|
||||
// Load the previous window state with fallback to defaults
|
||||
const mainWindowState = windowStateKeeper({
|
||||
defaultWidth: 1024,
|
||||
defaultHeight: 768,
|
||||
});
|
||||
|
||||
mainWindow = global.mainWindow = new electron.BrowserWindow({
|
||||
const preloadScript = path.normalize(`${__dirname}/preload.js`);
|
||||
mainWindow = global.mainWindow = new BrowserWindow({
|
||||
icon: iconPath,
|
||||
show: false,
|
||||
autoHideMenuBar: true,
|
||||
autoHideMenuBar: store.get('autoHideMenuBar', true),
|
||||
|
||||
x: mainWindowState.x,
|
||||
y: mainWindowState.y,
|
||||
width: mainWindowState.width,
|
||||
height: mainWindowState.height,
|
||||
webPreferences: {
|
||||
preload: preloadScript,
|
||||
nodeIntegration: false,
|
||||
sandbox: true,
|
||||
enableRemoteModule: false,
|
||||
// We don't use this: it's useful for the preload script to
|
||||
// share a context with the main page so we can give select
|
||||
// objects to the main page. The sandbox option isolates the
|
||||
// main page from the background script.
|
||||
contextIsolation: false,
|
||||
webgl: false,
|
||||
},
|
||||
});
|
||||
mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
|
||||
electron.Menu.setApplicationMenu(vectorMenu);
|
||||
|
||||
// explicitly hide because setApplicationMenu on Linux otherwise shows...
|
||||
// https://github.com/electron/electron/issues/9621
|
||||
mainWindow.hide();
|
||||
mainWindow.loadURL('vector://vector/webapp/');
|
||||
Menu.setApplicationMenu(vectorMenu);
|
||||
|
||||
// Create trayIcon icon
|
||||
tray.create({
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
});
|
||||
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
|
||||
|
||||
if (!argv.hidden) {
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindowState.manage(mainWindow);
|
||||
|
||||
if (!argv['hidden']) {
|
||||
mainWindow.show();
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// hide here explicitly because window manage above sometimes shows it
|
||||
mainWindow.hide();
|
||||
}
|
||||
});
|
||||
|
||||
mainWindow.on('closed', () => {
|
||||
mainWindow = global.mainWindow = null;
|
||||
});
|
||||
mainWindow.on('close', (e) => {
|
||||
// If we are not quitting and have a tray icon then minimize to tray
|
||||
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
// On Mac, closing the window just hides it
|
||||
// (this is generally how single-window Mac apps
|
||||
@@ -240,26 +622,37 @@ electron.app.on('ready', () => {
|
||||
}
|
||||
|
||||
webContentsHandler(mainWindow.webContents);
|
||||
mainWindowState.manage(mainWindow);
|
||||
});
|
||||
|
||||
electron.app.on('window-all-closed', () => {
|
||||
electron.app.quit();
|
||||
app.on('window-all-closed', () => {
|
||||
app.quit();
|
||||
});
|
||||
|
||||
electron.app.on('activate', () => {
|
||||
app.on('activate', () => {
|
||||
mainWindow.show();
|
||||
});
|
||||
|
||||
electron.app.on('before-quit', () => {
|
||||
app.on('before-quit', () => {
|
||||
global.appQuitting = true;
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send('before-quit');
|
||||
}
|
||||
});
|
||||
|
||||
app.on('second-instance', (ev, commandLine, workingDirectory) => {
|
||||
// If other instance launched with --hidden then skip showing window
|
||||
if (commandLine.includes('--hidden')) return;
|
||||
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (!mainWindow.isVisible()) mainWindow.show();
|
||||
if (mainWindow.isMinimized()) mainWindow.restore();
|
||||
mainWindow.focus();
|
||||
}
|
||||
});
|
||||
|
||||
// Set the App User Model ID to match what the squirrel
|
||||
// installer uses for the shortcut icon.
|
||||
// This makes notifications work on windows 8.1 (and is
|
||||
// a noop on other platforms).
|
||||
electron.app.setAppUserModelId('com.squirrel.riot-web.Riot');
|
||||
app.setAppUserModelId('com.squirrel.riot-web.Riot');
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
// @flow
|
||||
|
||||
/*
|
||||
Copyright 2016 Aviral Dasgupta
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2018, 2019 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -17,13 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
let Platform = null;
|
||||
const { ipcRenderer } = require('electron');
|
||||
|
||||
if (window && window.process && window.process && window.process.type === 'renderer') {
|
||||
// we're running inside electron
|
||||
Platform = require('./ElectronPlatform');
|
||||
} else {
|
||||
Platform = require('./WebPlatform');
|
||||
}
|
||||
|
||||
export default Platform;
|
||||
// expose ipcRenderer to the renderer process
|
||||
window.ipcRenderer = ipcRenderer;
|
||||
104
electron_app/src/protocol.js
Normal file
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const {app} = require("electron");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
|
||||
const PROTOCOL = "riot://";
|
||||
const SEARCH_PARAM = "riot-desktop-ssoid";
|
||||
const STORE_FILE_NAME = "sso-sessions.json";
|
||||
|
||||
// we getPath userData before electron-main changes it, so this is the default value
|
||||
const storePath = path.join(app.getPath("userData"), STORE_FILE_NAME);
|
||||
|
||||
const processUrl = (url) => {
|
||||
if (!global.mainWindow) return;
|
||||
console.log("Handling link: ", url);
|
||||
global.mainWindow.loadURL(url.replace(PROTOCOL, "vector://"));
|
||||
};
|
||||
|
||||
const readStore = () => {
|
||||
try {
|
||||
const s = fs.readFileSync(storePath, { encoding: "utf8" });
|
||||
const o = JSON.parse(s);
|
||||
return typeof o === "object" ? o : {};
|
||||
} catch (e) {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
const writeStore = (data) => {
|
||||
fs.writeFileSync(storePath, JSON.stringify(data));
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
recordSSOSession: (sessionID) => {
|
||||
const userDataPath = app.getPath('userData');
|
||||
const store = readStore();
|
||||
for (const key in store) {
|
||||
// ensure each instance only has one (the latest) session ID to prevent the file growing unbounded
|
||||
if (store[key] === userDataPath) {
|
||||
delete store[key];
|
||||
break;
|
||||
}
|
||||
}
|
||||
store[sessionID] = userDataPath;
|
||||
writeStore(store);
|
||||
},
|
||||
getProfileFromDeeplink: (args) => {
|
||||
// check if we are passed a profile in the SSO callback url
|
||||
const deeplinkUrl = args.find(arg => arg.startsWith('riot://'));
|
||||
if (deeplinkUrl && deeplinkUrl.includes(SEARCH_PARAM)) {
|
||||
const parsedUrl = new URL(deeplinkUrl);
|
||||
if (parsedUrl.protocol === 'riot:') {
|
||||
const ssoID = parsedUrl.searchParams.get(SEARCH_PARAM);
|
||||
const store = readStore();
|
||||
console.log("Forwarding to profile: ", store[ssoID]);
|
||||
return store[ssoID];
|
||||
}
|
||||
}
|
||||
},
|
||||
protocolInit: () => {
|
||||
// get all args except `hidden` as it'd mean the app would not get focused
|
||||
// XXX: passing args to protocol handlers only works on Windows, so unpackaged deep-linking
|
||||
// --profile/--profile-dir are passed via the SEARCH_PARAM var in the callback url
|
||||
const args = process.argv.slice(1).filter(arg => arg !== "--hidden" && arg !== "-hidden");
|
||||
if (app.isPackaged) {
|
||||
app.setAsDefaultProtocolClient('riot', process.execPath, args);
|
||||
} else if (process.platform === 'win32') { // on Mac/Linux this would just cause the electron binary to open
|
||||
// special handler for running without being packaged, e.g `electron .` by passing our app path to electron
|
||||
app.setAsDefaultProtocolClient('riot', process.execPath, [app.getAppPath(), ...args]);
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
// Protocol handler for macos
|
||||
app.on('open-url', function(ev, url) {
|
||||
ev.preventDefault();
|
||||
processUrl(url);
|
||||
});
|
||||
} else {
|
||||
// Protocol handler for win32/Linux
|
||||
app.on('second-instance', (ev, commandLine) => {
|
||||
const url = commandLine[commandLine.length - 1];
|
||||
if (!url.startsWith(PROTOCOL)) return;
|
||||
processUrl(url);
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -26,6 +26,13 @@ exports.hasTray = function hasTray() {
|
||||
return (trayIcon !== null);
|
||||
};
|
||||
|
||||
exports.destroy = function() {
|
||||
if (trayIcon) {
|
||||
trayIcon.destroy();
|
||||
trayIcon = null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.create = function(config) {
|
||||
// no trays on darwin
|
||||
if (process.platform === 'darwin' || trayIcon) return;
|
||||
@@ -65,7 +72,7 @@ exports.create = function(config) {
|
||||
global.mainWindow.webContents.on('page-favicon-updated', async function(ev, favicons) {
|
||||
if (!favicons || favicons.length <= 0 || !favicons[0].startsWith('data:')) {
|
||||
if (lastFavicon !== null) {
|
||||
win.setIcon(defaultIcon);
|
||||
global.mainWindow.setIcon(defaultIcon);
|
||||
trayIcon.setImage(defaultIcon);
|
||||
lastFavicon = null;
|
||||
}
|
||||
|
||||
@@ -37,9 +37,14 @@ const template = [
|
||||
submenu: [
|
||||
{ type: 'separator' },
|
||||
{ role: 'resetzoom' },
|
||||
{ role: 'zoomin' },
|
||||
{ role: 'zoomin', accelerator: 'CommandOrControl+=' },
|
||||
{ role: 'zoomout' },
|
||||
{ type: 'separator' },
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Command+,', // Mac-only accelerator
|
||||
click() { global.mainWindow.webContents.send('preferences'); },
|
||||
},
|
||||
{ role: 'togglefullscreen' },
|
||||
{ role: 'toggledevtools' },
|
||||
],
|
||||
@@ -57,8 +62,8 @@ const template = [
|
||||
role: 'help',
|
||||
submenu: [
|
||||
{
|
||||
label: 'riot.im',
|
||||
click() { shell.openExternal('https://riot.im/'); },
|
||||
label: 'Riot Help',
|
||||
click() { shell.openExternal('https://about.riot.im/help'); },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
const {clipboard, nativeImage, Menu, MenuItem, shell} = require('electron');
|
||||
const {clipboard, nativeImage, Menu, MenuItem, shell, dialog} = require('electron');
|
||||
const url = require('url');
|
||||
const fs = require('fs');
|
||||
const request = require('request');
|
||||
|
||||
const MAILTO_PREFIX = "mailto:";
|
||||
|
||||
const PERMITTED_URL_SCHEMES = [
|
||||
'http:',
|
||||
'https:',
|
||||
'mailto:',
|
||||
MAILTO_PREFIX,
|
||||
];
|
||||
|
||||
function safeOpenURL(target) {
|
||||
@@ -32,19 +36,27 @@ function onWindowOrNavigate(ev, target) {
|
||||
}
|
||||
|
||||
function onLinkContextMenu(ev, params) {
|
||||
const url = params.linkURL || params.srcURL;
|
||||
let url = params.linkURL || params.srcURL;
|
||||
|
||||
if (url.startsWith('vector://vector/webapp')) {
|
||||
url = "https://riot.im/app/" + url.substring(23);
|
||||
}
|
||||
|
||||
const popupMenu = new Menu();
|
||||
popupMenu.append(new MenuItem({
|
||||
label: url,
|
||||
click() {
|
||||
safeOpenURL(url);
|
||||
},
|
||||
}));
|
||||
// No point trying to open blob: URLs in an external browser: it ain't gonna work.
|
||||
if (!url.startsWith('blob:')) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: url,
|
||||
click() {
|
||||
safeOpenURL(url);
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
||||
let addSaveAs = false;
|
||||
if (params.mediaType && params.mediaType === 'image' && !url.startsWith('file://')) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy Image',
|
||||
label: '&Copy image',
|
||||
click() {
|
||||
if (url.startsWith('data:')) {
|
||||
clipboard.writeImage(nativeImage.createFromDataURL(url));
|
||||
@@ -53,33 +65,85 @@ function onLinkContextMenu(ev, params) {
|
||||
}
|
||||
},
|
||||
}));
|
||||
|
||||
// We want the link to be ordered below the copy stuff, but don't want to duplicate
|
||||
// the `if` statement, so use a flag.
|
||||
addSaveAs = true;
|
||||
}
|
||||
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy Link Address',
|
||||
click() {
|
||||
clipboard.writeText(url);
|
||||
},
|
||||
}));
|
||||
popupMenu.popup();
|
||||
// No point offering to copy a blob: URL either
|
||||
if (!url.startsWith('blob:')) {
|
||||
// Special-case e-mail URLs to strip the `mailto:` like modern browsers do
|
||||
if (url.startsWith(MAILTO_PREFIX)) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy email &address',
|
||||
click() {
|
||||
clipboard.writeText(url.substr(MAILTO_PREFIX.length));
|
||||
},
|
||||
}));
|
||||
} else {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy link &address',
|
||||
click() {
|
||||
clipboard.writeText(url);
|
||||
},
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
if (addSaveAs) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Sa&ve image as...',
|
||||
click() {
|
||||
const targetFileName = params.titleText || "image.png";
|
||||
const filePath = dialog.showSaveDialog({
|
||||
defaultPath: targetFileName,
|
||||
});
|
||||
|
||||
if (!filePath) return; // user cancelled dialog
|
||||
|
||||
try {
|
||||
if (url.startsWith("data:")) {
|
||||
fs.writeFileSync(filePath, nativeImage.createFromDataURL(url));
|
||||
} else {
|
||||
request.get(url).pipe(fs.createWriteStream(filePath));
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
dialog.showMessageBox({
|
||||
type: "error",
|
||||
title: "Failed to save image",
|
||||
message: "The image failed to save",
|
||||
});
|
||||
}
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
function _CutCopyPasteSelectContextMenus(params) {
|
||||
return [{
|
||||
role: 'cut',
|
||||
label: 'Cu&t',
|
||||
enabled: params.editFlags.canCut,
|
||||
}, {
|
||||
role: 'copy',
|
||||
label: '&Copy',
|
||||
enabled: params.editFlags.canCopy,
|
||||
}, {
|
||||
role: 'paste',
|
||||
label: '&Paste',
|
||||
enabled: params.editFlags.canPaste,
|
||||
}, {
|
||||
role: 'pasteandmatchstyle',
|
||||
enabled: params.editFlags.canPaste,
|
||||
}, {
|
||||
role: 'selectall',
|
||||
label: "Select &All",
|
||||
enabled: params.editFlags.canSelectAll,
|
||||
}];
|
||||
}
|
||||
@@ -88,7 +152,8 @@ function onSelectedContextMenu(ev, params) {
|
||||
const items = _CutCopyPasteSelectContextMenus(params);
|
||||
const popupMenu = Menu.buildFromTemplate(items);
|
||||
|
||||
popupMenu.popup();
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
@@ -101,14 +166,18 @@ function onEditableContextMenu(ev, params) {
|
||||
|
||||
const popupMenu = Menu.buildFromTemplate(items);
|
||||
|
||||
popupMenu.popup();
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
|
||||
module.exports = (webContents) => {
|
||||
webContents.on('new-window', onWindowOrNavigate);
|
||||
webContents.on('will-navigate', onWindowOrNavigate);
|
||||
webContents.on('will-navigate', (ev, target) => {
|
||||
if (target.startsWith("vector://")) return;
|
||||
return onWindowOrNavigate(ev, target);
|
||||
});
|
||||
|
||||
webContents.on('context-menu', function(ev, params) {
|
||||
if (params.linkURL || params.srcURL) {
|
||||
|
||||
837
electron_app/yarn.lock
Normal file
@@ -0,0 +1,837 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@types/node@^9.4.0":
|
||||
version "9.6.45"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.45.tgz#a9e5cfd026a3abaaf17e3c0318a470da9f2f178e"
|
||||
integrity sha512-9scD7xI1kpIoMs3gVFMOWsWDyRIQ1AOZwe56i1CQPE6N/P4POYkn9UtW5F66t8C2AIoPtVfOFycQ2r11t3pcyg==
|
||||
|
||||
ajv@^6.5.5:
|
||||
version "6.10.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
|
||||
integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
|
||||
dependencies:
|
||||
fast-deep-equal "^2.0.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
applescript@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317"
|
||||
integrity sha1-u4evVoytA0pOSMS9r2Bno6JwExc=
|
||||
|
||||
asn1@~0.2.3:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
|
||||
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
||||
dependencies:
|
||||
safer-buffer "~2.1.0"
|
||||
|
||||
assert-plus@1.0.0, assert-plus@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
||||
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||
|
||||
auto-launch@^5.0.1:
|
||||
version "5.0.5"
|
||||
resolved "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz#d14bd002b1ef642f85e991a6195ff5300c8ad3c0"
|
||||
integrity sha512-ppdF4mihhYzMYLuCcx9H/c5TUOCev8uM7en53zWVQhyYAJrurd2bFZx3qQVeJKF2jrc7rsPRNN5cD+i23l6PdA==
|
||||
dependencies:
|
||||
applescript "^1.0.0"
|
||||
mkdirp "^0.5.1"
|
||||
path-is-absolute "^1.0.0"
|
||||
untildify "^3.0.2"
|
||||
winreg "1.2.4"
|
||||
|
||||
aws-sign2@~0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
||||
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
|
||||
|
||||
aws4@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
|
||||
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
|
||||
|
||||
bcrypt-pbkdf@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
|
||||
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
bignumber.js@^2.1.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
|
||||
integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=
|
||||
|
||||
bmp-js@0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a"
|
||||
integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=
|
||||
|
||||
buffer-equal@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
|
||||
integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||
|
||||
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
|
||||
integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
conf@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz#ee282efafc1450b61e205372041ad7d866802d9a"
|
||||
integrity sha512-93Kz74FOMo6aWRVpAZsonOdl2I57jKtHrNmxhumehFQw4X8Sk37SohNY11PG7Q8Okta+UnrVaI006WLeyp8/XA==
|
||||
dependencies:
|
||||
dot-prop "^4.1.0"
|
||||
env-paths "^1.0.0"
|
||||
make-dir "^1.0.0"
|
||||
pkg-up "^2.0.0"
|
||||
write-file-atomic "^2.3.0"
|
||||
|
||||
core-util-is@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
deep-equal@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
||||
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
|
||||
|
||||
define-properties@^1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
||||
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
|
||||
dependencies:
|
||||
object-keys "^1.0.12"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
|
||||
dom-walk@^0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
|
||||
integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
|
||||
|
||||
dot-prop@^4.1.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
|
||||
integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
|
||||
dependencies:
|
||||
is-obj "^1.0.0"
|
||||
|
||||
ecc-jsbn@~0.1.1:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||
integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
|
||||
dependencies:
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.1.0"
|
||||
|
||||
electron-store@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz#1035cca2a95409d1f54c7466606345852450d64a"
|
||||
integrity sha512-1WCFYHsYvZBqDsoaS0Relnz0rd81ZkBAI0Fgx7Nq2UWU77rSNs1qxm4S6uH7TCZ0bV3LQpJFk7id/is/ZgoOPA==
|
||||
dependencies:
|
||||
conf "^2.0.0"
|
||||
|
||||
electron-window-state@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
|
||||
integrity sha1-azT9wxs4UU3+yLfI97XUrdtnYy0=
|
||||
dependencies:
|
||||
deep-equal "^1.0.1"
|
||||
jsonfile "^2.2.3"
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
env-paths@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
|
||||
integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=
|
||||
|
||||
es-abstract@^1.5.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
|
||||
integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
|
||||
dependencies:
|
||||
es-to-primitive "^1.2.0"
|
||||
function-bind "^1.1.1"
|
||||
has "^1.0.3"
|
||||
is-callable "^1.1.4"
|
||||
is-regex "^1.0.4"
|
||||
object-keys "^1.0.12"
|
||||
|
||||
es-to-primitive@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
|
||||
integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
|
||||
dependencies:
|
||||
is-callable "^1.1.4"
|
||||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.2"
|
||||
|
||||
es6-promise@^3.0.2:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
|
||||
integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
|
||||
|
||||
exif-parser@^0.1.9:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
|
||||
integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
|
||||
|
||||
extend@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
|
||||
|
||||
extsprintf@^1.2.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
|
||||
|
||||
fast-deep-equal@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
|
||||
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
|
||||
|
||||
fast-json-stable-stringify@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
||||
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
|
||||
|
||||
file-type@^3.1.0:
|
||||
version "3.9.0"
|
||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
||||
integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
|
||||
|
||||
find-up@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
|
||||
integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
|
||||
dependencies:
|
||||
locate-path "^2.0.0"
|
||||
|
||||
for-each@^0.3.3:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
|
||||
integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
|
||||
dependencies:
|
||||
is-callable "^1.1.3"
|
||||
|
||||
forever-agent@~0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||
|
||||
form-data@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
|
||||
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
function-bind@^1.0.2, function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||
|
||||
getpass@^0.1.1:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||
integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
global@~4.3.0:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
|
||||
integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
|
||||
dependencies:
|
||||
min-document "^2.19.0"
|
||||
process "~0.5.1"
|
||||
|
||||
graceful-fs@^4.1.11, graceful-fs@^4.1.6:
|
||||
version "4.1.15"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
||||
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
|
||||
|
||||
har-schema@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
|
||||
|
||||
har-validator@~5.1.0:
|
||||
version "5.1.3"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
|
||||
integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
|
||||
dependencies:
|
||||
ajv "^6.5.5"
|
||||
har-schema "^2.0.0"
|
||||
|
||||
has-symbols@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
|
||||
integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
|
||||
|
||||
has@^1.0.1, has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
http-signature@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
||||
integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
jsprim "^1.2.2"
|
||||
sshpk "^1.7.0"
|
||||
|
||||
imurmurhash@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
|
||||
|
||||
ip-regex@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
|
||||
integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=
|
||||
|
||||
is-callable@^1.1.3, is-callable@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
|
||||
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
|
||||
|
||||
is-date-object@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
|
||||
integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
|
||||
|
||||
is-function@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
|
||||
integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=
|
||||
|
||||
is-obj@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
|
||||
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
|
||||
|
||||
is-regex@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
|
||||
integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
|
||||
dependencies:
|
||||
has "^1.0.1"
|
||||
|
||||
is-symbol@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
|
||||
integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
|
||||
dependencies:
|
||||
has-symbols "^1.0.0"
|
||||
|
||||
is-typedarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
|
||||
|
||||
isstream@~0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
||||
|
||||
jimp@^0.2.28:
|
||||
version "0.2.28"
|
||||
resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2"
|
||||
integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=
|
||||
dependencies:
|
||||
bignumber.js "^2.1.0"
|
||||
bmp-js "0.0.3"
|
||||
es6-promise "^3.0.2"
|
||||
exif-parser "^0.1.9"
|
||||
file-type "^3.1.0"
|
||||
jpeg-js "^0.2.0"
|
||||
load-bmfont "^1.2.3"
|
||||
mime "^1.3.4"
|
||||
mkdirp "0.5.1"
|
||||
pixelmatch "^4.0.0"
|
||||
pngjs "^3.0.0"
|
||||
read-chunk "^1.0.1"
|
||||
request "^2.65.0"
|
||||
stream-to-buffer "^0.1.0"
|
||||
tinycolor2 "^1.1.2"
|
||||
url-regex "^3.0.0"
|
||||
|
||||
jpeg-js@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482"
|
||||
integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=
|
||||
|
||||
jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
||||
|
||||
json-schema@0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
|
||||
|
||||
json-stringify-safe@~5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
|
||||
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
|
||||
|
||||
jsonfile@^2.2.3:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
|
||||
integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
|
||||
dependencies:
|
||||
assert-plus "1.0.0"
|
||||
extsprintf "1.3.0"
|
||||
json-schema "0.2.3"
|
||||
verror "1.10.0"
|
||||
|
||||
load-bmfont@^1.2.3:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b"
|
||||
integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==
|
||||
dependencies:
|
||||
buffer-equal "0.0.1"
|
||||
mime "^1.3.4"
|
||||
parse-bmfont-ascii "^1.0.3"
|
||||
parse-bmfont-binary "^1.0.5"
|
||||
parse-bmfont-xml "^1.1.4"
|
||||
phin "^2.9.1"
|
||||
xhr "^2.0.1"
|
||||
xtend "^4.0.0"
|
||||
|
||||
locate-path@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
||||
integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
|
||||
dependencies:
|
||||
p-locate "^2.0.0"
|
||||
path-exists "^3.0.0"
|
||||
|
||||
make-dir@^1.0.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
|
||||
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
|
||||
dependencies:
|
||||
pify "^3.0.0"
|
||||
|
||||
mime-db@~1.38.0:
|
||||
version "1.38.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"
|
||||
integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.19:
|
||||
version "2.1.22"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd"
|
||||
integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==
|
||||
dependencies:
|
||||
mime-db "~1.38.0"
|
||||
|
||||
mime@^1.3.4:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
||||
|
||||
min-document@^2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
|
||||
integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
|
||||
dependencies:
|
||||
dom-walk "^0.1.0"
|
||||
|
||||
minimist@0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||
|
||||
minimist@^1.2.0:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz#3db5c0765545ab8637be71f333a104a965a9ca3f"
|
||||
integrity sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==
|
||||
|
||||
mkdirp@0.5.1, mkdirp@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
oauth-sign@~0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
|
||||
|
||||
object-keys@^1.0.12:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032"
|
||||
integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==
|
||||
|
||||
p-limit@^1.1.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
|
||||
integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
|
||||
dependencies:
|
||||
p-try "^1.0.0"
|
||||
|
||||
p-locate@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
|
||||
integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
|
||||
dependencies:
|
||||
p-limit "^1.1.0"
|
||||
|
||||
p-try@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
|
||||
integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
|
||||
|
||||
parse-bmfont-ascii@^1.0.3:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
|
||||
integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
|
||||
|
||||
parse-bmfont-binary@^1.0.5:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
|
||||
integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
|
||||
|
||||
parse-bmfont-xml@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
|
||||
integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
|
||||
dependencies:
|
||||
xml-parse-from-string "^1.0.0"
|
||||
xml2js "^0.4.5"
|
||||
|
||||
parse-headers@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34"
|
||||
integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==
|
||||
dependencies:
|
||||
for-each "^0.3.3"
|
||||
string.prototype.trim "^1.1.2"
|
||||
|
||||
path-exists@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||
|
||||
performance-now@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
||||
|
||||
phin@^2.9.1:
|
||||
version "2.9.3"
|
||||
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
|
||||
integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
|
||||
|
||||
pify@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
||||
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
|
||||
|
||||
pixelmatch@^4.0.0:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
|
||||
integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
|
||||
dependencies:
|
||||
pngjs "^3.0.0"
|
||||
|
||||
pkg-up@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
|
||||
integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
|
||||
dependencies:
|
||||
find-up "^2.1.0"
|
||||
|
||||
png-to-ico@^1.0.2:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-1.0.7.tgz#9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2"
|
||||
integrity sha512-heHiZjPFhVgLiuSG4C4wwKN9YPGLpPJvOfXRyI+cEJf0vPutjJ4XDaeI2f/hzTFs+2juihDw3pP8R5JtTuQTGg==
|
||||
dependencies:
|
||||
"@types/node" "^9.4.0"
|
||||
jimp "^0.2.28"
|
||||
minimist "^1.2.0"
|
||||
|
||||
pngjs@^3.0.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
|
||||
integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
|
||||
|
||||
process@~0.5.1:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
|
||||
integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
|
||||
|
||||
psl@^1.1.24:
|
||||
version "1.1.31"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
|
||||
integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
|
||||
|
||||
punycode@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
|
||||
|
||||
punycode@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
||||
|
||||
qs@~6.5.2:
|
||||
version "6.5.2"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
||||
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||
|
||||
read-chunk@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194"
|
||||
integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=
|
||||
|
||||
request@^2.65.0:
|
||||
version "2.88.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
|
||||
integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
|
||||
dependencies:
|
||||
aws-sign2 "~0.7.0"
|
||||
aws4 "^1.8.0"
|
||||
caseless "~0.12.0"
|
||||
combined-stream "~1.0.6"
|
||||
extend "~3.0.2"
|
||||
forever-agent "~0.6.1"
|
||||
form-data "~2.3.2"
|
||||
har-validator "~5.1.0"
|
||||
http-signature "~1.2.0"
|
||||
is-typedarray "~1.0.0"
|
||||
isstream "~0.1.2"
|
||||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.19"
|
||||
oauth-sign "~0.9.0"
|
||||
performance-now "^2.1.0"
|
||||
qs "~6.5.2"
|
||||
safe-buffer "^5.1.2"
|
||||
tough-cookie "~2.4.3"
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||
|
||||
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sax@>=0.6.0:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
|
||||
signal-exit@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
||||
|
||||
sshpk@^1.7.0:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
|
||||
integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
|
||||
dependencies:
|
||||
asn1 "~0.2.3"
|
||||
assert-plus "^1.0.0"
|
||||
bcrypt-pbkdf "^1.0.0"
|
||||
dashdash "^1.12.0"
|
||||
ecc-jsbn "~0.1.1"
|
||||
getpass "^0.1.1"
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.0.2"
|
||||
tweetnacl "~0.14.0"
|
||||
|
||||
stream-to-buffer@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
|
||||
integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=
|
||||
dependencies:
|
||||
stream-to "~0.2.0"
|
||||
|
||||
stream-to@~0.2.0:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
|
||||
integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=
|
||||
|
||||
string.prototype.trim@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
|
||||
integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=
|
||||
dependencies:
|
||||
define-properties "^1.1.2"
|
||||
es-abstract "^1.5.0"
|
||||
function-bind "^1.0.2"
|
||||
|
||||
tinycolor2@^1.1.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
|
||||
integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=
|
||||
|
||||
tough-cookie@~2.4.3:
|
||||
version "2.4.3"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
|
||||
integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
|
||||
dependencies:
|
||||
psl "^1.1.24"
|
||||
punycode "^1.4.1"
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
|
||||
dependencies:
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
||||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||
|
||||
untildify@^3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"
|
||||
integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==
|
||||
|
||||
uri-js@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
|
||||
integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
url-regex@^3.0.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"
|
||||
integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=
|
||||
dependencies:
|
||||
ip-regex "^1.0.1"
|
||||
|
||||
uuid@^3.3.2:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
|
||||
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
|
||||
|
||||
verror@1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
winreg@1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b"
|
||||
integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=
|
||||
|
||||
write-file-atomic@^2.3.0:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
|
||||
integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==
|
||||
dependencies:
|
||||
graceful-fs "^4.1.11"
|
||||
imurmurhash "^0.1.4"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
xhr@^2.0.1:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd"
|
||||
integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==
|
||||
dependencies:
|
||||
global "~4.3.0"
|
||||
is-function "^1.0.1"
|
||||
parse-headers "^2.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
xml-parse-from-string@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
|
||||
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
|
||||
|
||||
xml2js@^0.4.5:
|
||||
version "0.4.19"
|
||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
|
||||
integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==
|
||||
dependencies:
|
||||
sax ">=0.6.0"
|
||||
xmlbuilder "~9.0.1"
|
||||
|
||||
xmlbuilder@~9.0.1:
|
||||
version "9.0.7"
|
||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
|
||||
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
|
||||
|
||||
xtend@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
|
||||
176
karma.conf.js
@@ -1,176 +0,0 @@
|
||||
// karma.conf.js - the config file for karma, which runs our tests.
|
||||
|
||||
var path = require('path');
|
||||
var webpack = require('webpack');
|
||||
var webpack_config = require('./webpack.config');
|
||||
|
||||
/*
|
||||
* We use webpack to build our tests. It's a pain to have to wait for webpack
|
||||
* to build everything; however it's the easiest way to load our dependencies
|
||||
* from node_modules.
|
||||
*
|
||||
* If you run karma in multi-run mode (with `npm run test-multi`), it will watch
|
||||
* the tests for changes, and webpack will rebuild using a cache. This is much quicker
|
||||
* than a clean rebuild.
|
||||
*/
|
||||
|
||||
// the name of the test file. By default, a special file which runs all tests.
|
||||
var testFile = process.env.KARMA_TEST_FILE || 'test/all-tests.js';
|
||||
|
||||
process.env.PHANTOMJS_BIN = 'node_modules/.bin/phantomjs';
|
||||
process.env.Q_DEBUG = 1;
|
||||
|
||||
/* the webpack config is based on the real one, to (a) try to simulate the
|
||||
* deployed environment as closely as possible, and (b) to avoid a shedload of
|
||||
* cut-and-paste.
|
||||
*/
|
||||
|
||||
// find out if we're shipping olm, and where it is, if so.
|
||||
const olm_entry = webpack_config.entry['olm'];
|
||||
|
||||
// remove the default entries - karma provides its own (via the 'files' and
|
||||
// 'preprocessors' config below)
|
||||
delete webpack_config['entry'];
|
||||
|
||||
// add ./test as a search path for js
|
||||
webpack_config.module.loaders.unshift({
|
||||
test: /\.js$/, loader: "babel",
|
||||
include: [path.resolve('./src'), path.resolve('./test')],
|
||||
});
|
||||
|
||||
// disable parsing for sinon, because it
|
||||
// tries to do voodoo with 'require' which upsets
|
||||
// webpack (https://github.com/webpack/webpack/issues/304)
|
||||
webpack_config.module.noParse.push(/sinon\/pkg\/sinon\.js$/);
|
||||
|
||||
// ?
|
||||
webpack_config.resolve.alias['sinon'] = 'sinon/pkg/sinon.js';
|
||||
|
||||
webpack_config.resolve.root = [
|
||||
path.resolve('./test'),
|
||||
];
|
||||
|
||||
webpack_config.devtool = 'inline-source-map';
|
||||
|
||||
module.exports = function (config) {
|
||||
const myconfig = {
|
||||
// frameworks to use
|
||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
||||
frameworks: ['mocha'],
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'node_modules/babel-polyfill/browser.js',
|
||||
testFile,
|
||||
|
||||
// make the images available via our httpd. They will be avaliable
|
||||
// below http://localhost:[PORT]/base/. See also `proxies` which
|
||||
// defines alternative URLs for them.
|
||||
//
|
||||
// This isn't required by any of the tests, but it stops karma
|
||||
// logging warnings when it serves a 404 for them.
|
||||
{
|
||||
pattern: 'node_modules/matrix-react-sdk/res/img/*',
|
||||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
{
|
||||
pattern: 'res/themes/**',
|
||||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
],
|
||||
|
||||
proxies: {
|
||||
// redirect img links to the karma server. See above.
|
||||
"/img/": "/base/node_modules/matrix-react-sdk/res/img/",
|
||||
"/themes/": "/base/res/themes/",
|
||||
},
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
// available preprocessors:
|
||||
// https://npmjs.org/browse/keyword/karma-preprocessor
|
||||
preprocessors: {
|
||||
'{src,test}/**/*.js': ['webpack', 'sourcemap'],
|
||||
},
|
||||
|
||||
// test results reporter to use
|
||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||
reporters: ['logcapture', 'spec', 'junit', 'summary'],
|
||||
|
||||
specReporter: {
|
||||
suppressErrorSummary: false, // do print error summary
|
||||
suppressFailed: false, // do print information about failed tests
|
||||
suppressPassed: false, // do print information about passed tests
|
||||
showSpecTiming: true, // print the time elapsed for each spec
|
||||
},
|
||||
|
||||
client: {
|
||||
captureLogs: true,
|
||||
},
|
||||
|
||||
// web server port
|
||||
port: 9876,
|
||||
|
||||
// enable / disable colors in the output (reporters and logs)
|
||||
colors: true,
|
||||
|
||||
// level of logging
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR ||
|
||||
// config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_INFO,
|
||||
|
||||
// enable / disable watching file and executing tests whenever any file
|
||||
// changes
|
||||
autoWatch: true,
|
||||
|
||||
// start these browsers
|
||||
// available browser launchers:
|
||||
// https://npmjs.org/browse/keyword/karma-launcher
|
||||
browsers: [
|
||||
'Chrome',
|
||||
//'PhantomJS',
|
||||
//'ChromeHeadless'
|
||||
],
|
||||
|
||||
customLaunchers: {
|
||||
'ChromeHeadless': {
|
||||
base: 'Chrome',
|
||||
flags: [
|
||||
// '--no-sandbox',
|
||||
// See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
|
||||
'--headless',
|
||||
'--disable-gpu',
|
||||
// Without a remote debugging port, Google Chrome exits immediately.
|
||||
'--remote-debugging-port=9222',
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
// Continuous Integration mode
|
||||
// if true, Karma captures browsers, runs the tests and exits
|
||||
// singleRun: false,
|
||||
|
||||
// Concurrency level
|
||||
// how many browser should be started simultaneous
|
||||
concurrency: Infinity,
|
||||
|
||||
junitReporter: {
|
||||
outputDir: 'karma-reports',
|
||||
},
|
||||
|
||||
webpack: webpack_config,
|
||||
|
||||
webpackMiddleware: {
|
||||
stats: {
|
||||
// don't fill the console up with a mahoosive list of modules
|
||||
chunks: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// include the olm loader if we have it.
|
||||
if (olm_entry) {
|
||||
myconfig.files.unshift(olm_entry);
|
||||
}
|
||||
|
||||
config.set(myconfig);
|
||||
};
|
||||
9512
package-lock.json
generated
285
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "0.14.2",
|
||||
"version": "1.6.0",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -11,150 +11,162 @@
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"files": [
|
||||
"AUTHORS.rst",
|
||||
"CONTRIBUTING.rst",
|
||||
"deploy",
|
||||
"docs",
|
||||
"karma.conf.js",
|
||||
"lib",
|
||||
"release.sh",
|
||||
"scripts",
|
||||
"res",
|
||||
"src",
|
||||
"test",
|
||||
"webpack.config.js"
|
||||
"webpack.config.js",
|
||||
"scripts",
|
||||
"docs",
|
||||
"release.sh",
|
||||
"deploy",
|
||||
"CHANGELOG.md",
|
||||
"CONTRIBUTING.rst",
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"AUTHORS.rst",
|
||||
"package.json",
|
||||
"contribute.json"
|
||||
],
|
||||
"style": "bundle.css",
|
||||
"matrix-react-parent": "matrix-react-sdk",
|
||||
"scripts": {
|
||||
"reskindex": "reskindex -h src/header",
|
||||
"reskindex:watch": "reskindex -h src/header -w",
|
||||
"i18n": "matrix-gen-i18n",
|
||||
"prunei18n": "matrix-prune-i18n",
|
||||
"build:res": "node scripts/copy-res.js",
|
||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||
"build:compile": "npm run reskindex && babel --source-maps -d lib src",
|
||||
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail",
|
||||
"build:bundle:dev": "webpack --optimize-occurence-order --progress --bail",
|
||||
"build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
|
||||
"build": "npm run reskindex && npm run build:res && npm run build:bundle",
|
||||
"build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev",
|
||||
"dist": "scripts/package.sh",
|
||||
"install:electron": "install-app-deps",
|
||||
"electron": "npm run install:electron && electron .",
|
||||
"start:res": "node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-file=bundles/_dev_/[name].js -w --progress",
|
||||
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
|
||||
"start": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
|
||||
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
|
||||
"lint": "eslint src/",
|
||||
"lintall": "eslint src/ test/",
|
||||
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && node scripts/compare-file.js src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
||||
"reskindex": "reskindex -h src/header",
|
||||
"reskindex:watch": "reskindex -h src/header -w",
|
||||
"reskindex:watch-react": "node scripts/yarn-sub.js matrix-react-sdk reskindex:watch",
|
||||
"clean": "rimraf lib webapp electron_app/dist",
|
||||
"prepublish": "npm run clean && npm run build:compile",
|
||||
"test": "karma start --single-run=true --autoWatch=false --browsers ChromeHeadless",
|
||||
"test-multi": "karma start"
|
||||
"build": "yarn clean && yarn build:genfiles && yarn build:compile && yarn build:types && yarn build:bundle",
|
||||
"build-stats": "yarn clean && yarn build:genfiles && yarn build:compile && yarn build:types && yarn build:bundle-stats",
|
||||
"build:jitsi": "scripts/build-jitsi.sh",
|
||||
"build:res": "node scripts/copy-res.js",
|
||||
"build:genfiles": "yarn reskindex && yarn build:res && yarn build:jitsi",
|
||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||
"build:compile": "babel -d lib --verbose --extensions \".ts,.js,.tsx\" src",
|
||||
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
|
||||
"build:bundle-stats": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production --json > webpack-stats.json",
|
||||
"build:electron": "yarn build && yarn install:electron && electron-builder -wml --ia32 --x64",
|
||||
"build:electron:linux": "yarn build && electron-builder -l --x64",
|
||||
"build:electron:macos": "yarn build && electron-builder -m --x64",
|
||||
"build:electron:windows": "yarn build && electron-builder -w --ia32 --x64",
|
||||
"build:types": "tsc --emitDeclarationOnly --jsx react",
|
||||
"install:electron": "electron-builder install-app-deps",
|
||||
"dist": "scripts/package.sh",
|
||||
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,riot-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
|
||||
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
|
||||
"electron": "yarn build && yarn install:electron && electron .",
|
||||
"lint": "yarn lint:types && yarn lint:ts && yarn lint:js && yarn lint:style",
|
||||
"lint:js": "eslint src",
|
||||
"lint:ts": "echo 'We don't actually have a typescript linter at this layer because tslint is being removed from our stack. Presumably your TS is fine.'",
|
||||
"lint:types": "tsc --noEmit --jsx react",
|
||||
"lint:style": "stylelint 'res/css/**/*.scss'",
|
||||
"test": "jest"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-polyfill": "^6.5.0",
|
||||
"babel-runtime": "^6.11.6",
|
||||
"bluebird": "^3.5.0",
|
||||
"browser-request": "^0.3.3",
|
||||
"draft-js": "^0.11.0-alpha",
|
||||
"extract-text-webpack-plugin": "^0.9.1",
|
||||
"favico.js": "^0.3.10",
|
||||
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
|
||||
"gfm.css": "^1.1.1",
|
||||
"highlight.js": "^9.0.0",
|
||||
"matrix-js-sdk": "0.10.2",
|
||||
"matrix-react-sdk": "0.12.3",
|
||||
"modernizr": "^3.1.0",
|
||||
"prop-types": "^15.5.10",
|
||||
"react": "^15.6.0",
|
||||
"react-dom": "^15.6.0",
|
||||
"sanitize-html": "^1.11.1",
|
||||
"ua-parser-js": "^0.7.10",
|
||||
"gfm.css": "^1.1.2",
|
||||
"highlight.js": "^9.13.1",
|
||||
"matrix-js-sdk": "6.0.0",
|
||||
"matrix-react-sdk": "2.5.0",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
|
||||
"postcss-easings": "^2.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.9.0",
|
||||
"react-dom": "^16.9.0",
|
||||
"sanitize-html": "^1.19.1",
|
||||
"ua-parser-js": "^0.7.19",
|
||||
"url": "^0.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.6.0",
|
||||
"babel-cli": "^6.5.2",
|
||||
"babel-core": "^6.14.0",
|
||||
"babel-eslint": "^6.1.0",
|
||||
"babel-loader": "^6.2.5",
|
||||
"babel-plugin-add-module-exports": "^0.2.1",
|
||||
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
|
||||
"babel-plugin-transform-class-properties": "^6.16.0",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.16.0",
|
||||
"babel-plugin-transform-runtime": "^6.15.0",
|
||||
"babel-preset-es2015": "^6.16.0",
|
||||
"babel-preset-es2016": "^6.16.0",
|
||||
"babel-preset-es2017": "^6.16.0",
|
||||
"babel-preset-react": "^6.16.0",
|
||||
"babel-preset-stage-2": "^6.17.0",
|
||||
"chokidar": "^1.6.1",
|
||||
"@babel/cli": "^7.7.5",
|
||||
"@babel/core": "^7.7.5",
|
||||
"@babel/plugin-proposal-class-properties": "^7.7.4",
|
||||
"@babel/plugin-proposal-decorators": "^7.7.4",
|
||||
"@babel/plugin-proposal-export-default-from": "^7.7.4",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.7.4",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.7.4",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.7.4",
|
||||
"@babel/plugin-transform-flow-comments": "^7.7.4",
|
||||
"@babel/plugin-transform-runtime": "^7.7.6",
|
||||
"@babel/preset-env": "^7.7.6",
|
||||
"@babel/preset-flow": "^7.7.4",
|
||||
"@babel/preset-react": "^7.7.4",
|
||||
"@babel/preset-typescript": "^7.7.4",
|
||||
"@babel/register": "^7.7.4",
|
||||
"@babel/runtime": "^7.7.6",
|
||||
"@types/modernizr": "^3.5.3",
|
||||
"@types/react": "16.9",
|
||||
"@types/react-dom": "^16.9.4",
|
||||
"autoprefixer": "^9.7.3",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-jest": "^24.9.0",
|
||||
"babel-loader": "^8.0.6",
|
||||
"canvas": "^2.6.1",
|
||||
"chokidar": "^3.3.1",
|
||||
"concurrently": "^4.0.1",
|
||||
"cpx": "^1.3.2",
|
||||
"cross-env": "^4.0.0",
|
||||
"css-raw-loader": "^0.1.1",
|
||||
"electron-builder": "^11.2.4",
|
||||
"electron-builder-squirrel-windows": "^11.2.1",
|
||||
"electron-devtools-installer": "^2.2.0",
|
||||
"emojione": "^2.2.7",
|
||||
"eslint": "^3.14.0",
|
||||
"cross-env": "^6.0.3",
|
||||
"css-loader": "^3.3.2",
|
||||
"electron-builder": "^22.3.2",
|
||||
"electron-builder-squirrel-windows": "^22.3.2",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"electron-notarize": "^0.2.0",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint-plugin-babel": "^4.1.1",
|
||||
"eslint-plugin-flowtype": "^2.30.0",
|
||||
"eslint-plugin-react": "^7.4.0",
|
||||
"expect": "^1.16.0",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-flowtype": "^2.50.3",
|
||||
"eslint-plugin-jest": "^23.0.4",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"eslint-plugin-react-hooks": "^2.2.0",
|
||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||
"fake-indexeddb": "^3.0.0",
|
||||
"file-loader": "^5.0.2",
|
||||
"fs-extra": "^0.30.0",
|
||||
"html-webpack-plugin": "^2.24.0",
|
||||
"html-webpack-plugin": "^3.2.0",
|
||||
"jest": "^24.9.0",
|
||||
"jest-environment-jsdom-fourteen": "^1.0.1",
|
||||
"json-loader": "^0.5.3",
|
||||
"karma": "^1.7.0",
|
||||
"karma-chrome-launcher": "^0.2.3",
|
||||
"karma-cli": "^0.1.2",
|
||||
"karma-junit-reporter": "^0.4.1",
|
||||
"karma-logcapture-reporter": "0.0.1",
|
||||
"karma-mocha": "^0.2.2",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-spec-reporter": "0.0.31",
|
||||
"karma-summary-reporter": "^1.3.3",
|
||||
"karma-webpack": "^1.7.0",
|
||||
"matrix-mock-request": "^1.2.0",
|
||||
"matrix-react-test-utils": "^0.2.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"matrix-mock-request": "^1.2.3",
|
||||
"matrix-react-test-utils": "^0.2.2",
|
||||
"mini-css-extract-plugin": "^0.8.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^2.4.5",
|
||||
"parallelshell": "^3.0.2",
|
||||
"modernizr": "^3.6.0",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"postcss-extend": "^1.0.5",
|
||||
"postcss-import": "^9.0.0",
|
||||
"postcss-loader": "^1.2.2",
|
||||
"postcss-mixins": "^5.4.1",
|
||||
"postcss-nested": "^1.0.0",
|
||||
"postcss-scss": "^0.4.0",
|
||||
"postcss-simple-vars": "^3.0.0",
|
||||
"postcss-hexrgba": "^2.0.0",
|
||||
"postcss-import": "^12.0.1",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-mixins": "^6.2.3",
|
||||
"postcss-nested": "^4.2.1",
|
||||
"postcss-preset-env": "^6.7.0",
|
||||
"postcss-scss": "^2.0.0",
|
||||
"postcss-simple-vars": "^5.0.2",
|
||||
"postcss-strip-inline-comments": "^0.1.5",
|
||||
"react-addons-perf": "^15.4.0",
|
||||
"react-addons-test-utils": "^15.6.0",
|
||||
"rimraf": "^2.4.3",
|
||||
"source-map-loader": "^0.2.3",
|
||||
"webpack": "^1.12.14",
|
||||
"webpack-dev-server": "^1.16.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz"
|
||||
"shell-escape": "^0.2.0",
|
||||
"stylelint": "^12.0.1",
|
||||
"terser-webpack-plugin": "^2.3.0",
|
||||
"typescript": "^3.7.3",
|
||||
"webpack": "^4.41.2",
|
||||
"webpack-cli": "^3.3.10",
|
||||
"webpack-dev-server": "^3.9.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"category": "Network",
|
||||
"electronVersion": "1.8.4",
|
||||
"//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
|
||||
"asar": false,
|
||||
"dereference": true,
|
||||
"//files": "We bundle everything, so we only need to include webapp/",
|
||||
"electronVersion": "7.1.14",
|
||||
"files": [
|
||||
"node_modules/**",
|
||||
"src/**",
|
||||
"img/**"
|
||||
"src/**"
|
||||
],
|
||||
"extraResources": [
|
||||
{
|
||||
"from": "electron_app/img",
|
||||
"to": "img"
|
||||
},
|
||||
"webapp/**/*"
|
||||
],
|
||||
"linux": {
|
||||
@@ -165,13 +177,54 @@
|
||||
"StartupWMClass": "riot"
|
||||
}
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.social-networking",
|
||||
"darkModeSupport": true
|
||||
},
|
||||
"win": {
|
||||
"target": "squirrel"
|
||||
"target": {
|
||||
"target": "squirrel"
|
||||
},
|
||||
"sign": "scripts/electron_winSign"
|
||||
},
|
||||
"directories": {
|
||||
"buildResources": "electron_app/build",
|
||||
"output": "electron_app/dist",
|
||||
"app": "electron_app"
|
||||
}
|
||||
},
|
||||
"afterSign": "scripts/electron_afterSign.js",
|
||||
"protocols": [
|
||||
{
|
||||
"name": "riot",
|
||||
"schemes": [
|
||||
"riot"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"jest": {
|
||||
"modulePathIgnorePatterns": [
|
||||
"<rootDir>/electron_app"
|
||||
],
|
||||
"testEnvironment": "jest-environment-jsdom-fourteen",
|
||||
"testMatch": [
|
||||
"<rootDir>/test/**/*-test.js"
|
||||
],
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"\\.(gif|png|svg|ttf|woff2)$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/imageMock.js",
|
||||
"\\$webapp/i18n/languages.json": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/languages.json",
|
||||
"^browser-request$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/browser-request.js",
|
||||
"^react$": "<rootDir>/node_modules/react",
|
||||
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
||||
"^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
|
||||
"^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src"
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
"/node_modules/(?!matrix-js-sdk).+$",
|
||||
"/node_modules/(?!matrix-react-sdk).+$"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
module.exports = {
|
||||
plugins: [
|
||||
require("postcss-import")(),
|
||||
require("autoprefixer")(),
|
||||
require("postcss-simple-vars")(),
|
||||
require("postcss-extend")(),
|
||||
require("postcss-nested")(),
|
||||
require("postcss-mixins")(),
|
||||
require("postcss-strip-inline-comments")(),
|
||||
],
|
||||
"parser": "postcss-scss",
|
||||
"local-plugins": true,
|
||||
};
|
||||
59
release.sh
@@ -1,41 +1,78 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script to perform a release of vector-web.
|
||||
# Script to perform a release of riot-web.
|
||||
#
|
||||
# Requires github-changelog-generator; to install, do
|
||||
# pip install git+https://github.com/matrix-org/github-changelog-generator.git
|
||||
|
||||
set -e
|
||||
|
||||
orig_args=$@
|
||||
|
||||
# chomp any args starting with '-' as these need to go
|
||||
# through to the release script and otherwise we'll get
|
||||
# confused about what the version arg is.
|
||||
while [[ "$1" == -* ]]; do
|
||||
shift
|
||||
done
|
||||
|
||||
cd `dirname $0`
|
||||
|
||||
for i in matrix-js-sdk matrix-react-sdk
|
||||
do
|
||||
echo "Checking version of $i..."
|
||||
depver=`cat package.json | jq -r .dependencies[\"$i\"]`
|
||||
latestver=`npm show $i version`
|
||||
latestver=`yarn info -s $i dist-tags.next`
|
||||
if [ "$depver" != "$latestver" ]
|
||||
then
|
||||
echo "The latest version of $i is $latestver but package.json depends on $depver"
|
||||
echo -n "Type 'Yes' to continue anyway: "
|
||||
echo "The latest version of $i is $latestver but package.json depends on $depver."
|
||||
echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:"
|
||||
read resp
|
||||
if [ "$resp" != "Yes" ]
|
||||
if [ "$resp" != "u" ] && [ "$resp" != "c" ]
|
||||
then
|
||||
echo "OK, never mind."
|
||||
echo "Aborting."
|
||||
exit 1
|
||||
fi
|
||||
if [ "$resp" == "u" ]
|
||||
then
|
||||
echo "Upgrading $i to $latestver..."
|
||||
yarn add -E $i@$latestver
|
||||
git add -u
|
||||
# The `-e` flag opens the editor and gives you a chance to check
|
||||
# the upgrade for correctness.
|
||||
git commit -m "Upgrade $i to $latestver" -e
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# bump Electron's package.json first
|
||||
release="${1#v}"
|
||||
tag="v${release}"
|
||||
echo "electron npm version"
|
||||
prerelease=0
|
||||
# We check if this build is a prerelease by looking to
|
||||
# see if the version has a hyphen in it. Crude,
|
||||
# but semver doesn't support postreleases so anything
|
||||
# with a hyphen is a prerelease.
|
||||
echo $release | grep -q '-' && prerelease=1
|
||||
|
||||
# bump Electron's package.json first
|
||||
echo "electron yarn version"
|
||||
cd electron_app
|
||||
npm version --no-git-tag-version "$release"
|
||||
yarn version --no-git-tag-version --new-version "$release"
|
||||
git commit package.json -m "$tag"
|
||||
|
||||
|
||||
cd ..
|
||||
|
||||
exec ./node_modules/matrix-js-sdk/release.sh -z "$@"
|
||||
./node_modules/matrix-js-sdk/release.sh -u vector-im -z "$orig_args"
|
||||
|
||||
if [ $prerelease -eq 0 ]
|
||||
then
|
||||
# For a release, reset SDK deps back to the `develop` branch.
|
||||
for i in matrix-js-sdk matrix-react-sdk
|
||||
do
|
||||
echo "Resetting $i to develop branch..."
|
||||
yarn add github:matrix-org/$i#develop
|
||||
git add -u
|
||||
git commit -m "Reset $i back to develop branch"
|
||||
done
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
@@ -1 +1 @@
|
||||
signing_id: packages@riot.im
|
||||
signing_id: releases@riot.im
|
||||
|
||||
@@ -1,192 +0,0 @@
|
||||
<style type="text/css">
|
||||
|
||||
/* we deliberately inline style here to avoid flash-of-CSS problems, and to avoid
|
||||
* voodoo where we have to set display: none by default
|
||||
*/
|
||||
|
||||
.mx_HomePage_container {
|
||||
text-align: center;
|
||||
display: block ! important;
|
||||
width: 690px;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage_header {
|
||||
margin-top: 37px;
|
||||
margin-left: 10px;
|
||||
width: 670px;
|
||||
box-sizing: border-box;
|
||||
font-size: 18px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 2px 10px 0px rgba(48,55,81,0.05);
|
||||
border-radius: 5px;
|
||||
padding: 20px 80px 20px 80px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mx_HomePage_header h1 {
|
||||
font-size: 29px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mx_HomePage_intro h2 {
|
||||
margin-top: 32px;
|
||||
font-size: 25px;
|
||||
color: #49555F;
|
||||
}
|
||||
|
||||
.mx_HomePage_intro {
|
||||
margin: auto;
|
||||
width: 600px;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.mx_HomePage_coc {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.mx_HomePage_coc a {
|
||||
color: #4360DF;
|
||||
}
|
||||
|
||||
.mx_HomePage_room, .mx_HomePage_telegram {
|
||||
float: left;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 2px 10px 0px rgba(48,55,81,0.05);
|
||||
border-radius: 5px;
|
||||
margin: 10px;
|
||||
width: 210px;
|
||||
height: 250px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mx_HomePage_telegram {
|
||||
background-color: transparent;
|
||||
border: 1px solid rgba(113, 129, 142, 0.2);
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
font-size: 16px;
|
||||
line-height: 25px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mx_HomePage_telegram a {
|
||||
text-transform: uppercase;
|
||||
color: #4360DF;
|
||||
font-size: 13px;
|
||||
font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
|
||||
font-weight: 600;
|
||||
opacity: 1.0;
|
||||
transition: opacity .2s ease;
|
||||
}
|
||||
|
||||
.mx_HomePage_telegram a:hover {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_icon {
|
||||
margin-top: 24px;
|
||||
margin-bottom: 16px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_name {
|
||||
display: block;
|
||||
font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
color: #49555F;
|
||||
line-height: 25px;
|
||||
margin: 0px 12px 0px 12px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_desc {
|
||||
flex: 1;
|
||||
display: block;
|
||||
margin: 0px 12px 0px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage_button {
|
||||
align-self: normal;
|
||||
margin: 12px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(199, 206, 209, 0.12);
|
||||
background-color: #6CC1F6;
|
||||
font-size: 13px;
|
||||
font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
color: #fff ! important;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
padding: 14px;
|
||||
box-sizing: border-box;
|
||||
padding-left: 1.5em;
|
||||
padding-right: 1.5em;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div class="mx_HomePage_container">
|
||||
<div class="mx_HomePage_header">
|
||||
<div>
|
||||
<h1>Welcome to Status Community Chat, powered by Riot.</h1>
|
||||
<p>For contributors, developers and Ethereum-enthusiasts who care about the movement for decentralization.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx_HomePage_intro">
|
||||
<h2>Our rooms</h2>
|
||||
<p>Please abide by the channels discussion categories and remain on topic to the specific category details listed.</p>
|
||||
<p class="mx_HomePage_coc">Before posting please refer to our <a href="https://wiki.status.im/Code_of_conduct">Code of Conduct</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mx_HomePage_room">
|
||||
<img class="mx_HomePage_icon" src="themes/status/img/a.png">
|
||||
<span class="mx_HomePage_name">#announcements</span>
|
||||
<span class="mx_HomePage_desc">Company wide announcements.</span>
|
||||
<a class="mx_HomePage_button" href="#/room/#announcements:status.im">Join</a>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<img class="mx_HomePage_icon" src="themes/status/img/i.png">
|
||||
<span class="mx_HomePage_name">#introductions</span>
|
||||
<span class="mx_HomePage_desc">Newcomer introductions.</span>
|
||||
<a class="mx_HomePage_button" href="#/room/#introductions:status.im">Join</a>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<img class="mx_HomePage_icon" src="themes/status/img/g.png">
|
||||
<span class="mx_HomePage_name">#general</span>
|
||||
<span class="mx_HomePage_desc">General discussions of Status.</span>
|
||||
<a class="mx_HomePage_button" href="#/room/#general:status.im">Join</a>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<img class="mx_HomePage_icon" src="themes/status/img/d.png">
|
||||
<span class="mx_HomePage_name">#dev-status</span>
|
||||
<span class="mx_HomePage_desc">Contributing to our codebase? Building a DApp or a chatbot? We're here to help.</span>
|
||||
<a class="mx_HomePage_button" href="#/room/#dev-status:status.im">Join</a>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<img class="mx_HomePage_icon" src="themes/status/img/n.png">
|
||||
<span class="mx_HomePage_name">#news-articles</span>
|
||||
<span class="mx_HomePage_desc">Share news, articles related to Ethereum or projects you're excited about</span>
|
||||
<a class="mx_HomePage_button" href="#/room/#news-articles:status.im">Join</a>
|
||||
</div>
|
||||
<div class="mx_HomePage_telegram">
|
||||
<p>
|
||||
Interested in market and cryptocurrency type discussions?
|
||||
</p>
|
||||
<a href="https://t.me/StatusNetworkChat">Join Telegram</a>
|
||||
</div>
|
||||
</div>
|
||||
292
res/home.html
@@ -1,292 +0,0 @@
|
||||
<style type="text/css">
|
||||
|
||||
/* we deliberately inline style here to avoid flash-of-CSS problems, and to avoid
|
||||
* voodoo where we have to set display: none by default
|
||||
*/
|
||||
|
||||
.mx_HomePage_header h1 {
|
||||
margin-left: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 20px;
|
||||
margin-right: 20px;
|
||||
color: #454545;
|
||||
}
|
||||
|
||||
.mx_HomePage_header h2 {
|
||||
margin-left: 0px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 20px;
|
||||
margin-right: 20px;
|
||||
color: #454545;
|
||||
}
|
||||
|
||||
.mx_HomePage_header h1 a {
|
||||
color: #454545;
|
||||
}
|
||||
|
||||
.mx_HomePage h3 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.mx_HomePage_header {
|
||||
border: 1px solid #76CFA6;
|
||||
background-color: #eaf5f0;
|
||||
border-radius: 5px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mx_HomePage_col {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.mx_HomePage_toprow {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.mx_HomePage_row {
|
||||
flex: 1 1 0;
|
||||
margin-right: 20px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.mx_HomePage_logo {
|
||||
margin-top: 20px;
|
||||
margin-left: 40px;
|
||||
margin-right: 40px;
|
||||
margin-bottom: 20px;
|
||||
display: inline;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.mx_HomePage_toprow .mx_HomePage_room {
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_icon {
|
||||
border-radius: 50%;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_name {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_desc {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.mx_HomePage_comment {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 100px;
|
||||
min-height: 64px;
|
||||
}
|
||||
|
||||
.mx_HomePage_container h3::after,
|
||||
.mx_HomePage_container h4::after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
.mx_HomePage_container {
|
||||
display: block ! important;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage_container h1,
|
||||
.mx_HomePage_container h2,
|
||||
.mx_HomePage_container h3,
|
||||
.mx_HomePage_container h4 {
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="mx_HomePage_container">
|
||||
<div class="mx_HomePage_col mx_HomePage_header">
|
||||
<a href="https://riot.im"><img src="home/images/logo.svg" class="mx_HomePage_logo"></a>
|
||||
<div>
|
||||
<h1>_t("Welcome to Riot.im")</h1>
|
||||
<h2>_t("Decentralised, encrypted chat & collaboration powered by [matrix]")</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx_HomePage_col mx_HomePage_toprow">
|
||||
<div class="mx_HomePage_row">
|
||||
<div>
|
||||
<h3>_t("Search the room directory")</h3>
|
||||
<a class="mx_HomePage_room" href="#/directory">
|
||||
<img class="mx_HomePage_icon" src="img/icons-directory.svg">
|
||||
</a>
|
||||
<span class="mx_HomePage_comment">
|
||||
_t("Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!")
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx_HomePage_row">
|
||||
<div>
|
||||
<h3>_t("Chat with Riot Bot")</h3>
|
||||
<a class="mx_HomePage_room" href="#/user/@riot-bot:matrix.org?action=chat">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-bot.png">
|
||||
</a>
|
||||
<span class="mx_HomePage_comment">
|
||||
_t("Get started with some tips from Riot Bot!")
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>_t("General discussion about Matrix and Riot")</h3>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#matrix:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix.png">
|
||||
<span class="mx_HomePage_name">Matrix HQ</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Discussion of all things Matrix!")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot.png">
|
||||
<span class="mx_HomePage_name">Riot</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/Web & Desktop chat")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-ios:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-ios.png">
|
||||
<span class="mx_HomePage_name">#riot-ios</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/iOS & matrix-ios-sdk chat")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-android:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-android.png">
|
||||
<span class="mx_HomePage_name">#riot-android</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/Android & matrix-android-sdk chat")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>_t("Matrix technical discussions")</h3>
|
||||
<h4>_t("Running Matrix services")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#synapse:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix.png">
|
||||
<span class="mx_HomePage_name">Synapse Support Community</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Community-run support for Synapse")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#dendrite:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/dendrite.png">
|
||||
<span class="mx_HomePage_name">#dendrite:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Admin support for Dendrite")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#homeowners:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/homeowners.png">
|
||||
<span class="mx_HomePage_name">Synapse Homeowners</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Announcements about Synapse releases")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#irc:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/irc.png">
|
||||
<span class="mx_HomePage_name">IRC Matrix Bridges</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using and running matrix-appservice-irc")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>_t("Building services on Matrix")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#matrix-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix-dev.png">
|
||||
<span class="mx_HomePage_name">#matrix-dev:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using the Matrix spec")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#e2e:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/e2e.png">
|
||||
<span class="mx_HomePage_name">End-to-end crypto in Matrix</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Design and implementation of E2E in Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#vr:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/vr.png">
|
||||
<span class="mx_HomePage_name">#vr:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Implementing VR services with Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#webrtc:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/webrtc.png">
|
||||
<span class="mx_HomePage_name">#webrtc:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Implementing VoIP services with Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#matrix-identity:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/identity.jpg">
|
||||
<span class="mx_HomePage_name">Matrix Identity</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Discussion of the Identity Service API")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#bridging:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/bridging.png">
|
||||
<span class="mx_HomePage_name">Matrix Bridging</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using, running and writing other bridges")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>_t("Contributing code to Matrix and Riot")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-dev.png">
|
||||
<span class="mx_HomePage_name">#riot-dev</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Dev chat for the Riot/Web dev team")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#dendrite-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/dendrite-dev.png">
|
||||
<span class="mx_HomePage_name">#dendrite-dev</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Dev chat for the Dendrite dev team")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riotweb-translations:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-translations.png">
|
||||
<span class="mx_HomePage_name">Riot Translations</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Co-ordination for Riot translators")</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 173.6 146.6" style="enable-background:new 0 0 173.6 146.6;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#7DC8A2;}
|
||||
.st1{fill:#AFDBC5;}
|
||||
.st2{fill:#764D80;}
|
||||
.st3{enable-background:new ;}
|
||||
.st4{fill:none;stroke:#764D80;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<title>New_logo</title>
|
||||
<g id="Design">
|
||||
<path class="st0" d="M62.3,0H21.2C9.9,0,0.7,9.2,0.7,20.6v102.8c0,11.4,9.2,20.6,20.6,20.6c11.3,0,20.5-9.2,20.6-20.6v-20.6h20.5
|
||||
c28.4,0,51.4-23,51.4-51.4S90.7,0,62.3,0z"/>
|
||||
<path class="st1" d="M21.2,138.8c-8.5,0-15.4-6.9-15.4-15.4V20.6c0-8.5,6.8-15.3,15.3-15.4h41.2c25.5,0.4,46,21.4,45.6,46.9
|
||||
c-0.4,25-20.6,45.2-45.6,45.6H36.6v25.7C36.6,131.9,29.7,138.8,21.2,138.8z"/>
|
||||
<path class="st0" d="M21.2,133.7c-5.7,0-10.3-4.6-10.3-10.3V20.6c0-5.6,4.5-10.2,10.1-10.3h41.3c22.7,0,41.1,18.4,41.1,41.1
|
||||
S85.1,92.5,62.4,92.5H31.5v30.8C31.5,129.1,26.9,133.7,21.2,133.7z"/>
|
||||
<path class="st1" d="M21.2,128.6c-2.9,0-5.2-2.3-5.2-5.2V20.6c0-2.8,2.2-5.1,5-5.2h41.3c19.9,0,36,16.1,36,36s-16.1,36-36,36h-36
|
||||
v36C26.4,126.3,24.1,128.6,21.2,128.6z"/>
|
||||
<path class="st0" d="M21.3,82.3h41.1c17.1,0,30.9-13.8,30.9-30.9S79.4,20.5,62.3,20.5H21.2L21.3,82.3z"/>
|
||||
<path class="st1" d="M26.4,77.2V25.7h36c14.2,0.3,25.5,12,25.2,26.3c-0.3,13.8-11.4,25-25.2,25.2H26.4z"/>
|
||||
<path class="st0" d="M31.5,72V30.8h30.8c11.4,0.3,20.4,9.7,20.2,21.1c-0.2,11-9.1,19.9-20.2,20.2H31.5z"/>
|
||||
<path class="st1" d="M36.6,66.9v-31h25.7c8.6,0,15.5,6.9,15.5,15.5s-6.9,15.5-15.5,15.5H36.6z"/>
|
||||
<path class="st0" d="M41.8,61.8V41.1h20.6c5.7,0,10.4,4.7,10.3,10.4c0,5.7-4.6,10.3-10.3,10.3H41.8z"/>
|
||||
<path class="st1" d="M46.9,56.6V46.2h15.5c2.9,0,5.2,2.3,5.2,5.2s-2.3,5.2-5.2,5.2L46.9,56.6z"/>
|
||||
<ellipse transform="matrix(0.8192 -0.5736 0.5736 0.8192 -8.0825 15.5141)" class="st2" cx="20.6" cy="20.6" rx="20.6" ry="20.6"/>
|
||||
<path class="st2" d="M109.3,111.6c6.7,9.2,4.6,22-4.6,28.7s-22,4.6-28.7-4.6c-0.1-0.2-0.3-0.4-0.4-0.6l-30.8-44
|
||||
c-6.5-9.3-4.3-22.1,5-28.6s22.1-4.3,28.6,5L109.3,111.6z"/>
|
||||
</g>
|
||||
<g id="Layer_3">
|
||||
<path class="st2" d="M145.3,32.7h16.4c0.9,0,1.6-0.7,1.6-1.6c0-0.9-0.7-1.6-1.6-1.6h-16.4c-0.9,0-1.6,0.7-1.6,1.6
|
||||
C143.7,32,144.4,32.7,145.3,32.7z"/>
|
||||
<path class="st2" d="M145.3,3.3h4.9v5l0,0l-5.8,4c-0.7,0.5-0.9,1.5-0.4,2.3c0.5,0.7,1.5,0.9,2.3,0.4l4.6-3.2c1.6,3.2,5.5,4.6,8.8,3
|
||||
c2.2-1.1,3.7-3.4,3.6-5.9V1.7l0,0c0-0.9-0.7-1.6-1.6-1.6l0,0h-16.4c-0.9,0-1.6,0.7-1.6,1.6C143.7,2.6,144.4,3.3,145.3,3.3
|
||||
L145.3,3.3z M160,8.9c0,1.8-1.5,3.3-3.3,3.3s-3.3-1.5-3.3-3.3V3.3h6.5V8.9z"/>
|
||||
<path class="st2" d="M161.7,75.6c-0.9,0-1.6,0.7-1.6,1.6l0,0v4.9h-14.7c-0.9,0-1.6,0.7-1.6,1.6l0,0l0,0c0,0.9,0.7,1.6,1.6,1.6l0,0
|
||||
H160v5c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-6.6l0,0v-6.5C163.4,76.4,162.6,75.7,161.7,75.6C161.7,75.6,161.7,75.6,161.7,75.6z"
|
||||
/>
|
||||
<path class="st2" d="M153.5,46.4c-5.5,0-10,4.5-10,10s4.5,10,10,10s10-4.5,10-10S159.1,46.4,153.5,46.4z M153.5,63.2
|
||||
c-3.7,0-6.7-3-6.7-6.7c0-3.7,3-6.7,6.7-6.7c3.7,0,6.7,3,6.7,6.7v0C160.2,60.2,157.2,63.2,153.5,63.2L153.5,63.2z"/>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M145.2,109h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7
|
||||
c-0.2,0.2-0.5,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,109.1,144.9,109,145.2,109z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M145.2,109h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7
|
||||
c-0.2,0.2-0.5,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,109.1,144.9,109,145.2,109z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M145.2,126h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7v0.2c0,0.4-0.2,0.7-0.5,1l-9.8,6.5l9.8,6.5
|
||||
c0.4,0.2,0.5,0.5,0.5,1v0.2c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3
|
||||
c-0.2-0.2-0.3-0.4-0.3-0.7s0.1-0.5,0.3-0.7c0.2-0.2,0.5-0.3,0.7-0.3h13.7l-8.6-5.9c-0.3-0.2-0.5-0.5-0.5-0.9
|
||||
c0-0.3,0.2-0.6,0.5-0.9l8.6-5.8h-13.7c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,126.1,144.9,126,145.2,126z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M145.2,126h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7v0.2c0,0.4-0.2,0.7-0.5,1l-9.8,6.5l9.8,6.5
|
||||
c0.4,0.2,0.5,0.5,0.5,1v0.2c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3
|
||||
c-0.2-0.2-0.3-0.4-0.3-0.7s0.1-0.5,0.3-0.7c0.2-0.2,0.5-0.3,0.7-0.3h13.7l-8.6-5.9c-0.3-0.2-0.5-0.5-0.5-0.9
|
||||
c0-0.3,0.2-0.6,0.5-0.9l8.6-5.8h-13.7c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,126.1,144.9,126,145.2,126z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M152.5,98.1c0.3,0,0.6,0.1,0.9,0.4s0.4,0.5,0.4,0.9c0,0.3-0.1,0.6-0.4,0.9c-0.2,0.2-0.5,0.4-0.9,0.4h-0.5
|
||||
c-0.3,0-0.6-0.1-0.9-0.4c-0.2-0.2-0.4-0.5-0.4-0.9c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4H152.5z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M152.5,98.1c0.3,0,0.6,0.1,0.9,0.4s0.4,0.5,0.4,0.9c0,0.3-0.1,0.6-0.4,0.9c-0.2,0.2-0.5,0.4-0.9,0.4h-0.5
|
||||
c-0.3,0-0.6-0.1-0.9-0.4c-0.2-0.2-0.4-0.5-0.4-0.9c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4H152.5z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 966 B |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
BIN
res/themes/riot/img/backgrounds/valley.jpg
Normal file
|
After Width: | Height: | Size: 530 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1,158 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 163.60767 144.2"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="riot-im-logo-1.svg"
|
||||
width="163.60767"
|
||||
height="144.2"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><metadata
|
||||
id="metadata3918"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs3916" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="2071"
|
||||
id="namedview3914"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.98333333"
|
||||
inkscape:cx="81.80767"
|
||||
inkscape:cy="72.1"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><style
|
||||
type="text/css"
|
||||
id="style3856">
|
||||
.st0{fill:#7DC8A2;}
|
||||
.st1{fill:#AFDBC5;}
|
||||
.st2{fill:#764D80;}
|
||||
.st3{fill:#764D80;stroke:#764D80;stroke-miterlimit:10;}
|
||||
</style><g
|
||||
id="Layer_3"
|
||||
transform="translate(-38.19233,-47.9)"><g
|
||||
id="g3910"><g
|
||||
id="g3886"><g
|
||||
id="g3884"><path
|
||||
class="st0"
|
||||
d="M 100.6,48.1 H 59.7 c -0.1,0 -0.2,0 -0.3,0 -11.4,0 -20.6,9.2 -20.6,20.6 v 102.8 c 0,11.4 9.2,20.6 20.6,20.6 11.4,0 20.6,-9.2 20.6,-20.6 v -20.6 h 20.6 c 28.3,0 51.4,-23.1 51.4,-51.4 0,-28.3 -23.1,-51.4 -51.4,-51.4 z"
|
||||
id="path3858"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7dc8a2" /><path
|
||||
class="st1"
|
||||
d="M 59.5,186.9 C 51,186.9 44.1,180 44.1,171.5 V 68.6 c 0,-8.5 6.9,-15.4 15.3,-15.4 0.1,0 0.2,0 0.3,0 h 40.9 c 25.5,0 46.3,20.8 46.3,46.3 0,25.5 -20.8,46.3 -46.3,46.3 H 74.9 v 25.7 c 0,8.4 -6.9,15.4 -15.4,15.4 z"
|
||||
id="path3860"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 59.5,181.7 c -5.7,0 -10.3,-4.6 -10.3,-10.3 V 68.6 c 0,-5.6 4.5,-10.2 10.1,-10.3 0.1,0 0.2,0 0.3,0 h 41 c 22.7,0 41.1,18.5 41.1,41.1 0,22.6 -18.5,41.1 -41.1,41.1 H 69.8 v 30.8 c 0,5.8 -4.6,10.4 -10.3,10.4 z"
|
||||
id="path3862"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7dc8a2" /><path
|
||||
class="st1"
|
||||
d="m 59.5,176.6 c -2.9,0 -5.2,-2.3 -5.2,-5.2 V 68.6 c 0,-2.8 2.2,-5.1 5,-5.2 h 0.2 41.1 c 19.9,0 36,16.2 36,36 0,19.8 -16.1,36 -36,36 H 64.7 v 36 c 0,2.9 -2.3,5.2 -5.2,5.2 z"
|
||||
id="path3864"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 59.5,130.3 h 41.1 c 17,0 30.9,-13.8 30.9,-30.9 0,-17.1 -13.8,-30.9 -30.9,-30.9 H 59.5 Z"
|
||||
id="path3866"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7dc8a2" /><path
|
||||
class="st1"
|
||||
d="M 64.7,125.2 V 73.7 h 36 c 14.2,0 25.7,11.5 25.7,25.7 0,14.2 -11.5,25.7 -25.7,25.7 z"
|
||||
id="path3868"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="M 69.8,120.1 V 78.9 h 30.8 c 11.4,0 20.6,9.2 20.6,20.6 0,11.4 -9.2,20.6 -20.6,20.6 z"
|
||||
id="path3870"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7dc8a2" /><path
|
||||
class="st1"
|
||||
d="M 74.9,115 V 84 h 25.7 c 8.5,0 15.5,6.9 15.5,15.5 0,8.6 -6.9,15.5 -15.5,15.5 z"
|
||||
id="path3872"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="M 80,109.8 V 89.1 h 20.6 c 5.7,0 10.4,4.6 10.4,10.4 0,5.8 -4.6,10.4 -10.4,10.4 z"
|
||||
id="path3874"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7dc8a2" /><path
|
||||
class="st1"
|
||||
d="M 85.2,104.7 V 94.2 h 15.4 c 2.9,0 5.2,2.3 5.2,5.2 0,2.9 -2.3,5.2 -5.2,5.2 z"
|
||||
id="path3876"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><g
|
||||
id="g3882"><circle
|
||||
transform="matrix(0.8192,-0.5736,0.5736,0.8192,-28.7245,46.1263)"
|
||||
class="st2"
|
||||
cx="58.799999"
|
||||
cy="68.599998"
|
||||
id="ellipse3878"
|
||||
r="20.6"
|
||||
style="fill:#764d80" /><path
|
||||
class="st2"
|
||||
d="m 147.6,159.6 c 6.5,9.3 4.3,22.1 -5,28.6 -9.3,6.5 -22.1,4.3 -28.6,-5 l -30.8,-44 c -6.5,-9.3 -4.3,-22.1 5,-28.6 9.3,-6.5 22.1,-4.3 28.6,5 z"
|
||||
id="path3880"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /></g></g></g><g
|
||||
id="g3908"><g
|
||||
id="g3896"><path
|
||||
class="st2"
|
||||
d="M 183.6,80.7 H 200 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.9 -0.7,-1.6 -1.6,-1.6 h -16.4 c -0.9,0 -1.6,0.7 -1.6,1.6 0,0.9 0.7,1.6 1.6,1.6 z"
|
||||
id="path3888"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><path
|
||||
class="st2"
|
||||
d="m 183.6,51.3 h 4.9 v 5 0 l -5.8,4 c -0.7,0.5 -0.9,1.5 -0.4,2.3 0.5,0.7 1.5,0.9 2.3,0.4 l 4.6,-3.2 c 1.1,2.2 3.3,3.6 5.9,3.6 3.6,0 6.6,-3 6.6,-6.6 v -7.2 0 c 0,-0.6 -0.3,-1.1 -0.7,-1.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.3 v 0 h -9.8 -6.5 c -0.9,0 -1.6,0.7 -1.6,1.6 -0.2,1.1 0.5,1.8 1.4,1.8 z m 14.7,5.6 c 0,1.8 -1.5,3.3 -3.3,3.3 -1.8,0 -3.3,-1.5 -3.3,-3.3 v -5.6 h 6.5 z"
|
||||
id="path3890"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><path
|
||||
class="st2"
|
||||
d="m 200,123.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 4.9 h -14.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 0 c 0,0.9 0.7,1.6 1.6,1.6 h 14.7 v 5 c 0,0.9 0.7,1.6 1.6,1.6 0.9,0 1.6,-0.7 1.6,-1.6 v -6.6 0 -6.5 c 0,-0.9 -0.7,-1.6 -1.6,-1.6 z"
|
||||
id="path3892"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><path
|
||||
class="st2"
|
||||
d="m 191.8,94.5 c -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 5.5,0 10,-4.5 10,-10 0,-5.5 -4.5,-10 -10,-10 z m 0,16.7 c -3.7,0 -6.7,-3 -6.7,-6.7 0,-3.7 3,-6.7 6.7,-6.7 3.7,0 6.7,3 6.7,6.7 0,3.7 -3,6.7 -6.7,6.7 z"
|
||||
id="path3894"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /></g><g
|
||||
id="g3902"><path
|
||||
class="st2"
|
||||
d="m 201.1,157 c -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.4,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.4 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.3,0 0.7,-0.1 1.1,-0.4 0.3,-0.3 0.4,-0.6 0.4,-1.1 0,-0.4 -0.1,-0.8 -0.4,-1.1 z"
|
||||
id="path3898"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><path
|
||||
class="st2"
|
||||
d="m 201.5,175.3 v -0.2 c 0,-0.4 -0.1,-0.8 -0.4,-1.1 -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.3,0 -0.7,0 -1.1,0.3 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 h 12.1 l -7.3,4.9 c -0.4,0.4 -0.6,0.8 -0.6,1.3 0,0.5 0.3,1 0.7,1.3 l 7.3,5 h -12.1 c -0.3,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.4,0 0.7,-0.1 1.1,-0.4 0.4,-0.3 0.4,-0.6 0.4,-1.1 v -0.2 c 0,-0.5 -0.1,-1.1 -0.7,-1.4 l -9.2,-6.1 9.2,-6.1 c 0.4,-0.3 0.7,-0.8 0.7,-1.4 z"
|
||||
id="path3900"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /></g><g
|
||||
id="g3906"><path
|
||||
class="st3"
|
||||
d="m 190.7,146.1 c 0.3,0 0.6,0.1 0.9,0.4 0.2,0.2 0.4,0.5 0.4,0.9 0,0.3 -0.1,0.6 -0.4,0.9 -0.2,0.2 -0.5,0.4 -0.9,0.4 h -0.5 c -0.3,0 -0.6,-0.1 -0.9,-0.4 -0.2,-0.2 -0.4,-0.5 -0.4,-0.9 0,-0.4 0.1,-0.7 0.4,-0.9 0.2,-0.2 0.5,-0.4 0.9,-0.4 z"
|
||||
id="path3904"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80;stroke:#764d80;stroke-miterlimit:10" /></g></g></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 8.3 KiB |
@@ -1,165 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 163.7 144.10001"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="riot-im-logo-2.svg"
|
||||
width="163.7"
|
||||
height="144.10001"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><metadata
|
||||
id="metadata64"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs62" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview60"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.98333333"
|
||||
inkscape:cx="81.9"
|
||||
inkscape:cy="72"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#F69E98;}
|
||||
.st1{fill:#764D80;}
|
||||
</style><g
|
||||
id="Layer_3"
|
||||
transform="translate(-38.1,-47.9)"><g
|
||||
id="g26"><g
|
||||
id="g24"><g
|
||||
id="g12"><path
|
||||
class="st0"
|
||||
d="M 183.6,80.7 H 200 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.9 -0.7,-1.6 -1.6,-1.6 h -16.4 c -0.9,0 -1.6,0.7 -1.6,1.6 0,0.9 0.7,1.6 1.6,1.6 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 183.6,51.3 h 4.9 v 5 0 l -5.8,4 c -0.7,0.5 -0.9,1.5 -0.4,2.3 0.5,0.7 1.5,0.9 2.3,0.4 l 4.6,-3.2 c 1.1,2.2 3.3,3.6 5.9,3.6 3.6,0 6.6,-3 6.6,-6.6 v -7.2 0 c 0,-0.6 -0.3,-1.1 -0.7,-1.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.3 v 0 h -9.8 -6.5 c -0.9,0 -1.6,0.7 -1.6,1.6 -0.2,1.1 0.5,1.8 1.4,1.8 z m 14.7,5.6 c 0,1.8 -1.5,3.3 -3.3,3.3 -1.8,0 -3.3,-1.5 -3.3,-3.3 v -5.6 h 6.5 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 200,123.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 4.9 h -14.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 0 c 0,0.9 0.7,1.6 1.6,1.6 h 14.7 v 5 c 0,0.9 0.7,1.6 1.6,1.6 0.9,0 1.6,-0.7 1.6,-1.6 v -6.6 0 -6.5 c 0,-0.9 -0.7,-1.6 -1.6,-1.6 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 191.8,94.5 c -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 5.5,0 10,-4.5 10,-10 0,-5.5 -4.5,-10 -10,-10 z m 0,16.7 c -3.7,0 -6.7,-3 -6.7,-6.7 0,-3.7 3,-6.7 6.7,-6.7 3.7,0 6.7,3 6.7,6.7 0,3.7 -3,6.7 -6.7,6.7 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /></g><g
|
||||
id="g18"><path
|
||||
class="st0"
|
||||
d="m 201.1,157 c -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.4,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.4 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.3,0 0.7,-0.1 1.1,-0.4 0.3,-0.3 0.4,-0.6 0.4,-1.1 0,-0.4 -0.1,-0.8 -0.4,-1.1 z"
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 201.5,175.3 v -0.2 c 0,-0.4 -0.1,-0.8 -0.4,-1.1 -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.3,0 -0.7,0 -1.1,0.3 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 h 12.1 l -7.3,4.9 c -0.4,0.4 -0.6,0.8 -0.6,1.3 0,0.5 0.3,1 0.7,1.3 l 7.3,5 h -12.1 c -0.3,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.4,0 0.7,-0.1 1.1,-0.4 0.4,-0.3 0.4,-0.6 0.4,-1.1 v -0.2 c 0,-0.5 -0.1,-1.1 -0.7,-1.4 l -9.2,-6.1 9.2,-6.1 c 0.4,-0.3 0.7,-0.8 0.7,-1.4 z"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /></g><g
|
||||
id="g22"><path
|
||||
class="st0"
|
||||
d="m 190.7,146.1 c 0.3,0 0.6,0.1 0.9,0.4 0.2,0.2 0.4,0.5 0.4,0.9 0,0.3 -0.1,0.6 -0.4,0.9 -0.2,0.2 -0.5,0.4 -0.9,0.4 h -0.5 c -0.3,0 -0.6,-0.1 -0.9,-0.4 -0.2,-0.2 -0.4,-0.5 -0.4,-0.9 0,-0.4 0.1,-0.7 0.4,-0.9 0.2,-0.2 0.5,-0.4 0.9,-0.4 z"
|
||||
id="path20"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /></g></g></g></g><g
|
||||
id="g57"
|
||||
transform="translate(-38.1,-47.9)"><path
|
||||
class="st1"
|
||||
d="M 99.9,48 H 58.7 c -11.4,0 -20.6,9.2 -20.6,20.6 0,0 0,0 0,0 v 102.8 c 0,11.4 9.2,20.6 20.6,20.6 11.4,0 20.6,-9.2 20.6,-20.6 v -20.6 h 20.5 c 28.4,0 51.4,-23 51.4,-51.4 C 151.2,71 128.2,48 99.9,48 Z"
|
||||
id="path29"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><path
|
||||
class="st0"
|
||||
d="m 58.7,187.6 c -8.9,0 -16.2,-7.2 -16.2,-16.2 V 68.6 c 0,-8.9 7.1,-16.1 16,-16.2 h 41.3 c 26,0 47,21 47,47 0,26 -21,47 -47,47 H 74.9 v 25 c 0,9 -7.2,16.2 -16.2,16.2 z M 58.6,53.9 c -8,0.1 -14.5,6.6 -14.5,14.7 v 102.8 c 0,8.1 6.6,14.7 14.7,14.7 8.1,0 14.7,-6.6 14.7,-14.7 v -26.5 h 26.4 c 25.1,0 45.5,-20.4 45.5,-45.5 0,-25.1 -20.4,-45.5 -45.5,-45.5 0,0 -41.3,0 -41.3,0 z"
|
||||
id="path31"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 58.7,182.4 c -6.1,0 -11,-4.9 -11,-11 V 68.6 c 0,-6 4.8,-10.8 10.8,-11 h 41.3 c 23.1,0 41.9,18.7 41.9,41.9 0,23.2 -18.7,41.8 -41.9,41.8 h -30 v 30.1 c 0,6.1 -4.9,11 -11.1,11 0.1,0 0.1,0 0,0 z M 58.5,59 c -5.2,0.1 -9.3,4.4 -9.3,9.6 v 102.8 c -0.2,5.3 4,9.7 9.2,9.8 5.2,0.1 9.7,-4 9.8,-9.2 0,-0.2 0,-0.4 0,-0.6 v -31.6 h 31.6 c 22.3,0 40.3,-18.1 40.3,-40.4 0,-22.3 -18.1,-40.3 -40.3,-40.3 z"
|
||||
id="path33"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 58.7,177.3 c -3.2,0 -5.9,-2.6 -5.9,-5.9 V 68.6 c 0,-3.1 2.5,-5.7 5.6,-5.9 h 41.4 c 20.3,0 36.7,16.4 36.7,36.7 0,20.3 -16.4,36.7 -36.7,36.7 H 64.6 v 35.2 c 0,3.3 -2.6,6 -5.9,6 z M 58.5,64.2 c -2.3,0.2 -4.1,2.1 -4.1,4.4 v 102.8 c 0,2.4 2,4.4 4.4,4.4 2.4,0 4.4,-2 4.4,-4.4 v -36.8 h 36.7 c 19.4,0 35.2,-15.8 35.2,-35.2 0,-19.4 -15.8,-35.2 -35.2,-35.2 z"
|
||||
id="path35"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,131 H 58 V 67.9 h 41.9 c 17.4,0 31.6,14.1 31.6,31.6 0,17.5 -14.2,31.5 -31.6,31.5 z M 59.5,129.5 H 99.9 C 116.5,129.5 130,116 130,99.4 130,82.8 116.5,69.3 99.9,69.3 H 59.5 Z"
|
||||
id="path37"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,125.9 H 63.2 V 73 h 36.7 c 14.6,0.3 26.2,12.3 25.9,26.9 -0.3,14.3 -11.8,25.7 -25.9,26 z M 64.6,124.4 H 99.8 C 113.6,124.1 124.5,112.7 124.2,99 123.9,85.6 113.2,74.8 99.8,74.6 H 64.6 Z"
|
||||
id="path39"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,120.7 H 68.3 V 78.2 h 31.6 c 11.8,0.3 21.1,10 20.8,21.7 -0.3,11.4 -9.5,20.6 -20.8,20.8 z M 69.8,119.2 H 99.9 C 110.8,119 119.5,109.9 119.2,99 119,88.4 110.4,79.9 99.9,79.7 H 69.8 Z"
|
||||
id="path41"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,115.6 H 73.4 V 83.3 h 26.4 c 8.9,0 16.1,7.2 16.1,16.1 0,8.9 -7.1,16.2 -16,16.2 z m -25,-1.6 h 24.9 c 8.1,0 14.6,-6.6 14.6,-14.6 0,-8 -6.6,-14.6 -14.6,-14.6 v 0 H 74.9 Z"
|
||||
id="path43"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,110.4 H 78.6 v -22 h 21.3 c 6.1,0 11,4.9 11,11 0,6.1 -5,11 -11,11 z m -19.8,-1.5 h 19.8 c 5.2,0 9.5,-4.3 9.5,-9.5 0,-5.2 -4.3,-9.5 -9.5,-9.5 H 80.1 Z"
|
||||
id="path45"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="M 99.9,105.3 H 83.7 V 93.6 h 16.1 c 3.2,0 5.9,2.6 5.9,5.9 0,3.3 -2.6,5.8 -5.8,5.8 0,0 0,0 0,0 z m -14.7,-1.5 h 14.7 c 2.4,0 4.4,-2 4.4,-4.4 0,-2.4 -2,-4.4 -4.4,-4.4 H 85.2 Z"
|
||||
id="path47"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 99.4,100.2 h -9.3 c -0.4,0 -0.8,-0.3 -0.8,-0.8 0,-0.5 0.3,-0.8 0.8,-0.8 h 9.3 c 0.4,0 0.8,0.3 0.8,0.8 0,0.5 -0.4,0.8 -0.8,0.8 z"
|
||||
id="path49"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 58.7,172.2 c -0.4,0 -0.8,-0.3 -0.8,-0.8 v -36 c 0,-0.4 0.3,-0.8 0.8,-0.8 0.4,0 0.8,0.3 0.8,0.8 v 36 c 0,0.4 -0.3,0.8 -0.8,0.8 z"
|
||||
id="path51"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><circle
|
||||
transform="matrix(0.8192,-0.5736,0.5736,0.8192,-28.7215,46.1209)"
|
||||
class="st0"
|
||||
cx="58.799999"
|
||||
cy="68.599998"
|
||||
id="ellipse53"
|
||||
r="20.6"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st0"
|
||||
d="m 147.5,159.6 c 6.5,9.3 4.3,22.1 -5.1,28.6 -9.4,6.5 -22.1,4.3 -28.6,-5.1 L 83,139.1 c -6.5,-9.3 -4.2,-22.1 5.1,-28.6 9.3,-6.5 22.1,-4.2 28.6,5.1 z"
|
||||
id="path55"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /></g></svg>
|
||||
|
Before Width: | Height: | Size: 9.3 KiB |
@@ -1,173 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 163.89999 144.3"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="riot-im-logo-3.svg"
|
||||
width="163.89999"
|
||||
height="144.3"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><metadata
|
||||
id="metadata68"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs66" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview64"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.98333333"
|
||||
inkscape:cx="82.1"
|
||||
inkscape:cy="72.2"
|
||||
inkscape:window-x="1034"
|
||||
inkscape:window-y="234"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#FAC79E;}
|
||||
.st1{fill:#E45E5D;}
|
||||
.st2{fill:#F8A05F;}
|
||||
</style><g
|
||||
id="Layer_3"
|
||||
transform="translate(-37.9,-47.9)"><g
|
||||
id="g26"><g
|
||||
id="g24"><g
|
||||
id="g12"><path
|
||||
class="st0"
|
||||
d="M 183.6,80.7 H 200 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.9 -0.7,-1.6 -1.6,-1.6 h -16.4 c -0.9,0 -1.6,0.7 -1.6,1.6 0,0.9 0.7,1.6 1.6,1.6 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /><path
|
||||
class="st0"
|
||||
d="m 183.6,51.3 h 4.9 v 5 0 l -5.8,4 c -0.7,0.5 -0.9,1.5 -0.4,2.3 0.5,0.7 1.5,0.9 2.3,0.4 l 4.6,-3.2 c 1.1,2.2 3.3,3.6 5.9,3.6 3.6,0 6.6,-3 6.6,-6.6 v -7.2 0 c 0,-0.6 -0.3,-1.1 -0.7,-1.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.3 v 0 h -9.8 -6.5 c -0.9,0 -1.6,0.7 -1.6,1.6 -0.2,1.1 0.5,1.8 1.4,1.8 z m 14.7,5.6 c 0,1.8 -1.5,3.3 -3.3,3.3 -1.8,0 -3.3,-1.5 -3.3,-3.3 v -5.6 h 6.5 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /><path
|
||||
class="st0"
|
||||
d="m 200,123.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 4.9 h -14.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 0 c 0,0.9 0.7,1.6 1.6,1.6 h 14.7 v 5 c 0,0.9 0.7,1.6 1.6,1.6 0.9,0 1.6,-0.7 1.6,-1.6 v -6.6 0 -6.5 c 0,-0.9 -0.7,-1.6 -1.6,-1.6 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /><path
|
||||
class="st0"
|
||||
d="m 191.8,94.5 c -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 5.5,0 10,-4.5 10,-10 0,-5.5 -4.5,-10 -10,-10 z m 0,16.7 c -3.7,0 -6.7,-3 -6.7,-6.7 0,-3.7 3,-6.7 6.7,-6.7 3.7,0 6.7,3 6.7,6.7 0,3.7 -3,6.7 -6.7,6.7 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /></g><g
|
||||
id="g18"><path
|
||||
class="st0"
|
||||
d="m 201.1,157 c -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.4,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.4 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.3,0 0.7,-0.1 1.1,-0.4 0.3,-0.3 0.4,-0.6 0.4,-1.1 0,-0.4 -0.1,-0.8 -0.4,-1.1 z"
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /><path
|
||||
class="st0"
|
||||
d="m 201.5,175.3 v -0.2 c 0,-0.4 -0.1,-0.8 -0.4,-1.1 -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.3,0 -0.7,0 -1.1,0.3 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 h 12.1 l -7.3,4.9 c -0.4,0.4 -0.6,0.8 -0.6,1.3 0,0.5 0.3,1 0.7,1.3 l 7.3,5 h -12.1 c -0.3,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.4,0 0.7,-0.1 1.1,-0.4 0.4,-0.3 0.4,-0.6 0.4,-1.1 v -0.2 c 0,-0.5 -0.1,-1.1 -0.7,-1.4 l -9.2,-6.1 9.2,-6.1 c 0.4,-0.3 0.7,-0.8 0.7,-1.4 z"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /></g><g
|
||||
id="g22"><path
|
||||
class="st0"
|
||||
d="m 190.7,146.1 c 0.3,0 0.6,0.1 0.9,0.4 0.2,0.2 0.4,0.5 0.4,0.9 0,0.3 -0.1,0.6 -0.4,0.9 -0.2,0.2 -0.5,0.4 -0.9,0.4 h -0.5 c -0.3,0 -0.6,-0.1 -0.9,-0.4 -0.2,-0.2 -0.4,-0.5 -0.4,-0.9 0,-0.4 0.1,-0.7 0.4,-0.9 0.2,-0.2 0.5,-0.4 0.9,-0.4 z"
|
||||
id="path20"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /></g></g></g></g><g
|
||||
id="g61"
|
||||
transform="translate(-37.9,-47.9)"><path
|
||||
class="st1"
|
||||
d="M 99.6,48.2 H 58.5 c -11.4,0 -20.6,9.2 -20.6,20.6 0,0 0,0 0,0 v 102.8 c 0,11.4 9.2,20.6 20.6,20.6 11.4,0 20.6,-9.2 20.6,-20.6 V 151 h 20.6 c 28.4,0 51.4,-23 51.4,-51.4 0,-28.4 -23.1,-51.4 -51.5,-51.4 z"
|
||||
id="path29"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#e45e5d" /><polygon
|
||||
class="st2"
|
||||
points="37.9,96.3 37.9,104.3 85,48.2 78.3,48.2 "
|
||||
id="polygon31"
|
||||
style="fill:#f8a05f" /><polygon
|
||||
class="st2"
|
||||
points="37.9,112.3 37.9,120.2 98.4,48.2 91.7,48.2 "
|
||||
id="polygon33"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 110.8,49.5 c -1.9,-0.4 -3.9,-0.8 -5.9,-1 L 38,128.3 v 8 z"
|
||||
id="path35"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><polygon
|
||||
class="st2"
|
||||
points="37.9,80.3 37.9,88.3 71.6,48.2 64.8,48.2 "
|
||||
id="polygon37"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 121.2,53 c -1.6,-0.8 -3.3,-1.4 -5,-2 l -78.3,93.2 v 8 z"
|
||||
id="path39"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 79.1,151 h 0.2 L 144,73.8 c -0.9,-1.5 -1.9,-3 -2.9,-4.5 L 43.5,185.6 c 1.2,1.3 2.5,2.4 4,3.3 l 31.6,-37.7 z"
|
||||
id="path41"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="M 150.2,90.4 99.4,151 h 0.2 c 2.3,0 4.6,-0.2 6.9,-0.5 l 44.5,-53 c -0.2,-2.4 -0.4,-4.7 -0.8,-7.1 z"
|
||||
id="path43"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 78.7,175.7 -12.6,15 c 6.4,-2.6 11.2,-8.2 12.6,-15 z"
|
||||
id="path45"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 147.9,117.1 c 1.3,-3.6 2.2,-7.4 2.7,-11.2 l -35.9,42.8 c 3.7,-1.1 7.3,-2.7 10.6,-4.6 z"
|
||||
id="path47"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 130.2,58.3 c -1.4,-1 -2.8,-2 -4.3,-2.9 l -88,104.8 v 8 z"
|
||||
id="path49"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 137.8,65.2 c -1.2,-1.3 -2.4,-2.5 -3.6,-3.7 L 38.4,175.7 c 0.4,1.9 1.1,3.8 2,5.6 z"
|
||||
id="path51"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 79.1,167.2 v -8 l -26.8,32 c 1.9,0.6 3.9,1 5.9,1 z"
|
||||
id="path53"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><path
|
||||
class="st2"
|
||||
d="m 148.7,84.2 c -0.6,-1.9 -1.3,-3.7 -2.1,-5.5 L 85.9,151 h 6.7 z"
|
||||
id="path55"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f8a05f" /><circle
|
||||
transform="matrix(0.8192,-0.5736,0.5736,0.8192,-28.8644,46.014)"
|
||||
class="st0"
|
||||
cx="58.5"
|
||||
cy="68.800003"
|
||||
id="ellipse57"
|
||||
r="20.6"
|
||||
style="fill:#fac79e" /><path
|
||||
class="st0"
|
||||
d="m 147.3,159.8 c 6.5,9.3 4.3,22.1 -5.1,28.6 -9.4,6.5 -22.1,4.3 -28.6,-5.1 l -30.8,-44 c -6.5,-9.3 -4.2,-22.1 5.1,-28.6 9.3,-6.5 22.1,-4.2 28.6,5.1 z"
|
||||
id="path59"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fac79e" /></g></svg>
|
||||
|
Before Width: | Height: | Size: 7.9 KiB |
@@ -1,185 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 163.89999 144.10001"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="riot-im-logo-4.svg"
|
||||
width="163.89999"
|
||||
height="144.10001"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><metadata
|
||||
id="metadata70"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs68" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview66"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.98333333"
|
||||
inkscape:cx="82.1"
|
||||
inkscape:cy="72"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#C7BDCD;}
|
||||
.st1{fill:#E45E5D;}
|
||||
.st2{fill:#F69E98;}
|
||||
</style><g
|
||||
id="Layer_3"
|
||||
transform="translate(-37.9,-47.9)"><g
|
||||
id="g26"><g
|
||||
id="g24"><g
|
||||
id="g12"><path
|
||||
class="st0"
|
||||
d="M 183.6,80.7 H 200 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.9 -0.7,-1.6 -1.6,-1.6 h -16.4 c -0.9,0 -1.6,0.7 -1.6,1.6 0,0.9 0.7,1.6 1.6,1.6 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /><path
|
||||
class="st0"
|
||||
d="m 183.6,51.3 h 4.9 v 5 0 l -5.8,4 c -0.7,0.5 -0.9,1.5 -0.4,2.3 0.5,0.7 1.5,0.9 2.3,0.4 l 4.6,-3.2 c 1.1,2.2 3.3,3.6 5.9,3.6 3.6,0 6.6,-3 6.6,-6.6 v -7.2 0 c 0,-0.6 -0.3,-1.1 -0.7,-1.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.3 v 0 h -9.8 -6.5 c -0.9,0 -1.6,0.7 -1.6,1.6 -0.2,1.1 0.5,1.8 1.4,1.8 z m 14.7,5.6 c 0,1.8 -1.5,3.3 -3.3,3.3 -1.8,0 -3.3,-1.5 -3.3,-3.3 v -5.6 h 6.5 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /><path
|
||||
class="st0"
|
||||
d="m 200,123.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 4.9 h -14.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 0 c 0,0.9 0.7,1.6 1.6,1.6 h 14.7 v 5 c 0,0.9 0.7,1.6 1.6,1.6 0.9,0 1.6,-0.7 1.6,-1.6 v -6.6 0 -6.5 c 0,-0.9 -0.7,-1.6 -1.6,-1.6 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /><path
|
||||
class="st0"
|
||||
d="m 191.8,94.5 c -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 5.5,0 10,-4.5 10,-10 0,-5.5 -4.5,-10 -10,-10 z m 0,16.7 c -3.7,0 -6.7,-3 -6.7,-6.7 0,-3.7 3,-6.7 6.7,-6.7 3.7,0 6.7,3 6.7,6.7 0,3.7 -3,6.7 -6.7,6.7 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /></g><g
|
||||
id="g18"><path
|
||||
class="st0"
|
||||
d="m 201.1,157 c -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.4,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.4 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.3,0 0.7,-0.1 1.1,-0.4 0.3,-0.3 0.4,-0.6 0.4,-1.1 0,-0.4 -0.1,-0.8 -0.4,-1.1 z"
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /><path
|
||||
class="st0"
|
||||
d="m 201.5,175.3 v -0.2 c 0,-0.4 -0.1,-0.8 -0.4,-1.1 -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.3,0 -0.7,0 -1.1,0.3 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 h 12.1 l -7.3,4.9 c -0.4,0.4 -0.6,0.8 -0.6,1.3 0,0.5 0.3,1 0.7,1.3 l 7.3,5 h -12.1 c -0.3,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.4,0 0.7,-0.1 1.1,-0.4 0.4,-0.3 0.4,-0.6 0.4,-1.1 v -0.2 c 0,-0.5 -0.1,-1.1 -0.7,-1.4 l -9.2,-6.1 9.2,-6.1 c 0.4,-0.3 0.7,-0.8 0.7,-1.4 z"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /></g><g
|
||||
id="g22"><path
|
||||
class="st0"
|
||||
d="m 190.7,146.1 c 0.3,0 0.6,0.1 0.9,0.4 0.2,0.2 0.4,0.5 0.4,0.9 0,0.3 -0.1,0.6 -0.4,0.9 -0.2,0.2 -0.5,0.4 -0.9,0.4 h -0.5 c -0.3,0 -0.6,-0.1 -0.9,-0.4 -0.2,-0.2 -0.4,-0.5 -0.4,-0.9 0,-0.4 0.1,-0.7 0.4,-0.9 0.2,-0.2 0.5,-0.4 0.9,-0.4 z"
|
||||
id="path20"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /></g></g></g></g><g
|
||||
id="g63"
|
||||
transform="translate(-37.9,-47.9)"><path
|
||||
class="st1"
|
||||
d="M 99.6,48 H 58.5 c -11.4,0 -20.6,9.2 -20.6,20.6 0,0 0,0 0,0 v 102.8 c 0,11.4 9.2,20.6 20.6,20.6 11.4,0 20.6,-9.2 20.6,-20.6 V 150.8 H 99.6 C 128,150.8 151,127.8 151,99.4 151,71 128,48 99.6,48 Z"
|
||||
id="path29"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#e45e5d" /><path
|
||||
class="st2"
|
||||
d="m 40.7,181.7 c 1.1,1.9 2.6,3.7 4.2,5.1 H 72 c 1.7,-1.5 3.1,-3.2 4.2,-5.1 z"
|
||||
id="path31"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,140.6 v 5.1 h 84 c 3,-1.4 5.8,-3.2 8.4,-5.1 z"
|
||||
id="path33"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><rect
|
||||
x="37.900002"
|
||||
y="150.8"
|
||||
class="st2"
|
||||
width="41.099998"
|
||||
height="5.0999999"
|
||||
id="rect35"
|
||||
style="fill:#f69e98" /><rect
|
||||
x="37.900002"
|
||||
y="161.10001"
|
||||
class="st2"
|
||||
width="41.099998"
|
||||
height="5.0999999"
|
||||
id="rect37"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 38.6,63.4 h 97.6 c -1.8,-1.9 -3.8,-3.6 -5.9,-5.1 H 40.7 c -0.9,1.6 -1.6,3.3 -2.1,5.1 z"
|
||||
id="path39"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,171.4 v 0 c 0,1.7 0.2,3.4 0.7,5.1 h 39.8 c 0.4,-1.7 0.7,-3.4 0.7,-5.1 0,0 -41.2,0 -41.2,0 z"
|
||||
id="path41"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,104.6 h 112.8 c 0.2,-1.7 0.3,-3.4 0.3,-5.1 H 37.9 Z"
|
||||
id="path43"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,130.3 v 5.1 h 98.3 c 1.6,-1.6 3.1,-3.3 4.4,-5.1 z"
|
||||
id="path45"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,68.6 v 5.1 H 144 c -1,-1.8 -2.2,-3.5 -3.4,-5.1 z"
|
||||
id="path47"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 58.7,48 h -0.2 c -5,0 -9.8,1.8 -13.6,5.1 h 77 C 114.9,49.7 107.3,48 99.6,48 Z"
|
||||
id="path49"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="M 37.9,78.9 V 84 h 110.7 c -0.6,-1.7 -1.2,-3.5 -1.9,-5.1 z"
|
||||
id="path51"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,120 v 5.1 H 144 c 1,-1.7 1.8,-3.4 2.6,-5.1 z"
|
||||
id="path53"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,109.7 v 5.1 h 110.7 c 0.5,-1.7 1,-3.4 1.3,-5.1 z"
|
||||
id="path55"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><path
|
||||
class="st2"
|
||||
d="m 37.9,89.3 v 5.1 h 112.8 c -0.2,-1.7 -0.4,-3.4 -0.8,-5.1 z"
|
||||
id="path57"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f69e98" /><circle
|
||||
transform="matrix(0.8192,-0.5736,0.5736,0.8192,-28.7665,45.9782)"
|
||||
class="st0"
|
||||
cx="58.5"
|
||||
cy="68.599998"
|
||||
id="ellipse59"
|
||||
r="20.6"
|
||||
style="fill:#c7bdcd" /><path
|
||||
class="st0"
|
||||
d="m 147.3,159.6 c 6.5,9.3 4.3,22.1 -5.1,28.6 -9.4,6.5 -22.1,4.3 -28.6,-5.1 l -30.8,-44 c -6.5,-9.3 -4.2,-22.1 5.1,-28.6 9.3,-6.5 22.1,-4.2 28.6,5.1 z"
|
||||
id="path61"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c7bdcd" /></g></svg>
|
||||
|
Before Width: | Height: | Size: 8.1 KiB |
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 164.01289 144.2"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="riot-im-logo-5.svg"
|
||||
width="164.01289"
|
||||
height="144.2"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"><metadata
|
||||
id="metadata42"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs40" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.98333333"
|
||||
inkscape:cx="82.212895"
|
||||
inkscape:cy="72.1"
|
||||
inkscape:window-x="1100"
|
||||
inkscape:window-y="295"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Layer_1" /><style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#AFDBC5;}
|
||||
.st1{fill:#764D80;}
|
||||
</style><g
|
||||
id="Layer_3"
|
||||
transform="translate(-37.787105,-47.9)"><g
|
||||
id="g26"><g
|
||||
id="g24"><g
|
||||
id="g12"><path
|
||||
class="st0"
|
||||
d="M 183.6,80.7 H 200 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.9 -0.7,-1.6 -1.6,-1.6 h -16.4 c -0.9,0 -1.6,0.7 -1.6,1.6 0,0.9 0.7,1.6 1.6,1.6 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 183.6,51.3 h 4.9 v 5 0 l -5.8,4 c -0.7,0.5 -0.9,1.5 -0.4,2.3 0.5,0.7 1.5,0.9 2.3,0.4 l 4.6,-3.2 c 1.1,2.2 3.3,3.6 5.9,3.6 3.6,0 6.6,-3 6.6,-6.6 v -7.2 0 c 0,-0.6 -0.3,-1.1 -0.7,-1.4 -0.3,-0.2 -0.6,-0.3 -0.9,-0.3 v 0 h -9.8 -6.5 c -0.9,0 -1.6,0.7 -1.6,1.6 -0.2,1.1 0.5,1.8 1.4,1.8 z m 14.7,5.6 c 0,1.8 -1.5,3.3 -3.3,3.3 -1.8,0 -3.3,-1.5 -3.3,-3.3 v -5.6 h 6.5 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 200,123.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 4.9 h -14.7 c -0.9,0 -1.6,0.7 -1.6,1.6 v 0 c 0,0.9 0.7,1.6 1.6,1.6 h 14.7 v 5 c 0,0.9 0.7,1.6 1.6,1.6 0.9,0 1.6,-0.7 1.6,-1.6 v -6.6 0 -6.5 c 0,-0.9 -0.7,-1.6 -1.6,-1.6 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 191.8,94.5 c -5.5,0 -10,4.5 -10,10 0,5.5 4.5,10 10,10 5.5,0 10,-4.5 10,-10 0,-5.5 -4.5,-10 -10,-10 z m 0,16.7 c -3.7,0 -6.7,-3 -6.7,-6.7 0,-3.7 3,-6.7 6.7,-6.7 3.7,0 6.7,3 6.7,6.7 0,3.7 -3,6.7 -6.7,6.7 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /></g><g
|
||||
id="g18"><path
|
||||
class="st0"
|
||||
d="m 201.1,157 c -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.4,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.4 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.3,0 0.7,-0.1 1.1,-0.4 0.3,-0.3 0.4,-0.6 0.4,-1.1 0,-0.4 -0.1,-0.8 -0.4,-1.1 z"
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 201.5,175.3 v -0.2 c 0,-0.4 -0.1,-0.8 -0.4,-1.1 -0.3,-0.3 -0.6,-0.4 -1.1,-0.4 h -16.5 c -0.3,0 -0.7,0 -1.1,0.3 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 h 12.1 l -7.3,4.9 c -0.4,0.4 -0.6,0.8 -0.6,1.3 0,0.5 0.3,1 0.7,1.3 l 7.3,5 h -12.1 c -0.3,0 -0.7,0.1 -1.1,0.4 -0.3,0.3 -0.4,0.6 -0.4,1.1 0,0.5 0.1,0.7 0.4,1.1 0.3,0.4 0.6,0.4 1.1,0.4 H 200 c 0.4,0 0.7,-0.1 1.1,-0.4 0.4,-0.3 0.4,-0.6 0.4,-1.1 v -0.2 c 0,-0.5 -0.1,-1.1 -0.7,-1.4 l -9.2,-6.1 9.2,-6.1 c 0.4,-0.3 0.7,-0.8 0.7,-1.4 z"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /></g><g
|
||||
id="g22"><path
|
||||
class="st0"
|
||||
d="m 190.7,146.1 c 0.3,0 0.6,0.1 0.9,0.4 0.2,0.2 0.4,0.5 0.4,0.9 0,0.3 -0.1,0.6 -0.4,0.9 -0.2,0.2 -0.5,0.4 -0.9,0.4 h -0.5 c -0.3,0 -0.6,-0.1 -0.9,-0.4 -0.2,-0.2 -0.4,-0.5 -0.4,-0.9 0,-0.4 0.1,-0.7 0.4,-0.9 0.2,-0.2 0.5,-0.4 0.9,-0.4 z"
|
||||
id="path20"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /></g></g></g></g><g
|
||||
id="g35"
|
||||
transform="translate(-37.787105,-47.9)"><path
|
||||
class="st1"
|
||||
d="M 99.5,48.1 H 58.4 c -11.4,0 -20.6,9.2 -20.6,20.6 0,0 0,0 0,0 v 102.8 c 0,11.4 9.2,20.6 20.6,20.6 11.4,0 20.6,-9.2 20.6,-20.6 v -20.6 h 20.6 c 28.4,0 51.4,-23 51.4,-51.4 0,-28.4 -23.2,-51.4 -51.5,-51.4 z"
|
||||
id="path29"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#764d80" /><circle
|
||||
transform="matrix(0.8211,-0.5708,0.5708,0.8211,-28.7968,45.5905)"
|
||||
class="st0"
|
||||
cx="58.299999"
|
||||
cy="68.699997"
|
||||
id="ellipse31"
|
||||
r="20.5"
|
||||
style="fill:#afdbc5" /><path
|
||||
class="st0"
|
||||
d="m 147.2,159.6 c 6.5,9.3 4.3,22.1 -5.1,28.6 -9.4,6.5 -22.1,4.3 -28.6,-5.1 l -30.8,-44 c -6.5,-9.3 -4.2,-22.1 5.1,-28.6 9.3,-6.5 22.1,-4.2 28.6,5.1 z"
|
||||
id="path33"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#afdbc5" /></g></svg>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB |
BIN
res/themes/riot/img/logos/riot-im-logo-black-text.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
17
res/themes/riot/img/logos/riot-im-logo-black-text.svg
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
res/themes/riot/img/logos/riot-im-logo.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
17
res/themes/riot/img/logos/riot-im-logo.svg
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style type="text/css">.cls-1{fill:#764d80;}.cls-2{fill:#7dc8a2;}.cls-3{fill:#afdbc5;}</style></defs><title>Asset 4</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-1" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-1" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-1" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path class="cls-2" d="M62.33,0H21.22A20.56,20.56,0,0,0,.66,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H62.33A51.38,51.38,0,0,0,62.33,0Z"/><path class="cls-3" d="M21.22,138.81A15.45,15.45,0,0,1,5.79,123.37V20.57A15.45,15.45,0,0,1,21.09,5.14H62.33a46.26,46.26,0,0,1,0,92.51H36.65v25.71A15.45,15.45,0,0,1,21.22,138.81Z"/><path class="cls-2" d="M21.22,133.68a10.32,10.32,0,0,1-10.3-10.3V20.57A10.33,10.33,0,0,1,21,10.27H62.33a41.13,41.13,0,0,1,0,82.26H31.52v30.84A10.32,10.32,0,0,1,21.22,133.68Z"/><path class="cls-3" d="M21.22,128.55A5.18,5.18,0,0,1,16,123.37V20.57a5.2,5.2,0,0,1,5-5.17H62.33a36,36,0,0,1,0,72H26.39v36A5.18,5.18,0,0,1,21.22,128.55Z"/><path class="cls-2" d="M21.27,82.28H62.33a30.87,30.87,0,0,0,0-61.75H21.22Z"/><path class="cls-3" d="M26.39,77.15l0-51.49h36a25.75,25.75,0,0,1,0,51.49Z"/><path class="cls-2" d="M31.51,72l0-41.23H62.33a20.62,20.62,0,0,1,0,41.23Z"/><path class="cls-3" d="M36.64,66.9l0-31H62.33a15.49,15.49,0,0,1,0,31Z"/><path class="cls-2" d="M41.76,61.77l0-20.72H62.33a10.36,10.36,0,0,1,0,20.72Z"/><path class="cls-3" d="M46.89,56.64V46.18H62.33a5.23,5.23,0,0,1,0,10.47Z"/><circle class="cls-1" cx="20.56" cy="20.57" r="20.56" transform="translate(-8.08 15.51) rotate(-35)"/><path class="cls-1" d="M109.34,111.57a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.55,67.58Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.36 143.93"><defs><style type="text/css">.cls-1{fill:#764d80;}.cls-2{fill:#f69e98;}</style></defs><title>Asset 2</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><path class="cls-2" d="M20.56,139.54A16.19,16.19,0,0,1,4.39,123.37V20.57a16.21,16.21,0,0,1,16-16.17H61.67a47,47,0,0,1,0,94H36.73v25A16.19,16.19,0,0,1,20.56,139.54ZM20.39,5.9A14.7,14.7,0,0,0,5.89,20.57v102.8a14.67,14.67,0,0,0,29.34,0V96.9H61.67a45.49,45.49,0,0,0,0-91H20.39Z"/><path class="cls-2" d="M20.56,134.4a11,11,0,0,1-11-11V20.57a11.09,11.09,0,0,1,10.79-11H61.67a41.85,41.85,0,0,1,0,83.7H31.59v30.11A11,11,0,0,1,20.56,134.4ZM20.3,11A9.57,9.57,0,0,0,11,20.57v102.8a9.53,9.53,0,1,0,19.05,0V91.75H61.67a40.35,40.35,0,0,0,0-80.7H20.3Z"/><path class="cls-2" d="M20.56,129.25a5.89,5.89,0,0,1-5.88-5.88V20.57a5.94,5.94,0,0,1,5.61-5.88H61.67a36.71,36.71,0,0,1,0,73.42H26.44v35.25A5.89,5.89,0,0,1,20.56,129.25ZM20.31,16.19a4.42,4.42,0,0,0-4.13,4.38v102.8a4.38,4.38,0,0,0,8.77,0V86.61H61.67a35.21,35.21,0,0,0,0-70.42Z"/><path class="cls-2" d="M61.67,83H19.81V19.83H61.67a31.57,31.57,0,0,1,0,63.14Zm-40.36-1.5H61.67a30.07,30.07,0,0,0,0-60.14H21.32Z"/><path class="cls-2" d="M61.67,77.83H25V25H61.67a26.43,26.43,0,0,1,0,52.85Zm-35.22-1.5H61.67a24.93,24.93,0,0,0,0-49.85H26.46Z"/><path class="cls-2" d="M61.67,72.69H30.1V30.12H61.67a21.29,21.29,0,0,1,0,42.57ZM31.6,71.19H61.67a19.79,19.79,0,0,0,0-39.57H31.6Z"/><path class="cls-2" d="M61.67,67.55H35.24V35.26H61.67a16.14,16.14,0,0,1,0,32.29ZM36.74,66H61.67a14.64,14.64,0,0,0,0-29.29H36.74Z"/><path class="cls-2" d="M61.67,62.41H40.38v-22H61.67a11,11,0,0,1,0,22Zm-19.79-1.5H61.67a9.5,9.5,0,0,0,0-19H41.88Z"/><path class="cls-2" d="M61.67,57.26H45.52V45.54H61.67a5.86,5.86,0,0,1,0,11.72ZM47,55.76H61.67a4.36,4.36,0,0,0,0-8.72H47Z"/><path class="cls-2" d="M61.18,52.16H51.89a.75.75,0,1,1,0-1.5h9.29a.75.75,0,0,1,0,1.5Z"/><path class="cls-2" d="M20.56,124.12a.75.75,0,0,1-.75-.75v-36a.75.75,0,0,1,1.5,0v36A.75.75,0,0,1,20.56,124.12Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/><path class="cls-2" d="M145.91,51.12h25.61a2.57,2.57,0,0,0,0-5.14H145.91a2.57,2.57,0,1,0,0,5.14Z"/><path class="cls-2" d="M145.91,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,171.51,0H145.91a2.57,2.57,0,1,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M171.51,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23a2.57,2.57,0,0,0-2.57,2.57h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,171.51,118.28Z"/><path class="cls-2" d="M158.71,72.63a15.65,15.65,0,1,0,15.65,15.65A15.67,15.67,0,0,0,158.71,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,158.71,98.79Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style type="text/css">.cls-1{fill:#fac79e;}.cls-2{fill:#e45e5d;}.cls-3{fill:#f8a05f;}</style></defs><title>Asset 5</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-1" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-1" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-1" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path class="cls-2" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><polygon class="cls-3" points="47.03 0.01 40.32 0.01 0 48.06 0 56.05 47.03 0.01"/><polygon class="cls-3" points="60.45 0.01 53.74 0.01 0 64.05 0 72.04 60.45 0.01"/><path class="cls-3" d="M72.83,1.24a51,51,0,0,0-5.9-1L0,80v8Z"/><polygon class="cls-3" points="33.61 0.01 26.9 0.01 0 32.06 0 40.06 33.61 0.01"/><path class="cls-3" d="M83.27,4.78a51,51,0,0,0-5-2L0,96v8Z"/><path class="cls-3" d="M41.12,102.78h.18l64.78-77.2a51.55,51.55,0,0,0-2.94-4.49L5.55,137.38a20.62,20.62,0,0,0,3.95,3.29L41.12,103Z"/><path class="cls-3" d="M112.22,42.23l-50.8,60.54h.25a51.55,51.55,0,0,0,6.85-.47L113,49.3A51.32,51.32,0,0,0,112.22,42.23Z"/><path class="cls-3" d="M40.71,127.46l-12.59,15A20.58,20.58,0,0,0,40.71,127.46Z"/><path class="cls-3" d="M110,68.88a51,51,0,0,0,2.67-11.18L76.73,100.52a51.1,51.1,0,0,0,10.6-4.64Z"/><path class="cls-3" d="M92.22,10.1a51.58,51.58,0,0,0-4.3-2.87L0,112v8Z"/><path class="cls-3" d="M99.83,17q-1.73-1.92-3.64-3.66L.42,127.5a20.41,20.41,0,0,0,2,5.58Z"/><path class="cls-3" d="M41.12,119v-8l-26.82,32a20.53,20.53,0,0,0,5.9,1Z"/><path class="cls-3" d="M110.71,36a51,51,0,0,0-2.09-5.5L48,102.78h6.71Z"/><circle class="cls-1" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-1" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 175.64 143.93"><defs><style type="text/css">.cls-1{fill:#e45e5d;}.cls-2{fill:#c7bdcd;}.cls-3{fill:#f69e98;}</style></defs><title>Asset 3</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><path class="cls-2" d="M147.19,51.12h25.61a2.57,2.57,0,1,0,0-5.14H147.19a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-2" d="M147.19,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.79,0H147.19a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M172.79,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23a2.57,2.57,0,0,0-2.57,2.57h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.79,118.28Z"/><path class="cls-2" d="M160,72.63a15.65,15.65,0,1,0,15.65,15.65A15.67,15.67,0,0,0,160,72.63Zm0,26.16A10.51,10.51,0,1,1,170.5,88.28,10.52,10.52,0,0,1,160,98.79Z"/><path class="cls-3" d="M2.77,133.64A20.62,20.62,0,0,0,7,138.77H34.14a20.62,20.62,0,0,0,4.21-5.13Z"/><path class="cls-3" d="M0,92.52v5.14H84a51.48,51.48,0,0,0,8.41-5.14Z"/><rect class="cls-3" y="102.8" width="41.12" height="5.13"/><rect class="cls-3" y="113.08" width="41.12" height="5.14"/><path class="cls-3" d="M.68,15.41H98.3a51.8,51.8,0,0,0-5.86-5.14H2.78A20.41,20.41,0,0,0,.68,15.41Z"/><path class="cls-3" d="M0,123.36H0a20.53,20.53,0,0,0,.67,5.12H40.45a20.53,20.53,0,0,0,.67-5.12H0Z"/><path class="cls-3" d="M0,56.53H112.8c.17-1.69.26-3.4.26-5.13H0Z"/><path class="cls-3" d="M0,82.24v5.14H98.32a51.79,51.79,0,0,0,4.43-5.14Z"/><path class="cls-3" d="M0,20.57V25.7H106.14a51.58,51.58,0,0,0-3.39-5.14Z"/><path class="cls-3" d="M20.81,0h-.25A20.46,20.46,0,0,0,7,5.14H84A51.07,51.07,0,0,0,61.67,0Z"/><path class="cls-3" d="M0,30.85V36H110.69a51,51,0,0,0-1.94-5.14Z"/><path class="cls-3" d="M0,72v5.13H106.14A51.24,51.24,0,0,0,108.75,72Z"/><path class="cls-3" d="M0,61.68v5.14H110.69A50.92,50.92,0,0,0,112,61.68Z"/><path class="cls-3" d="M0,41.22v5.14H112.8a51.15,51.15,0,0,0-.77-5.14Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="translate(-8.07 15.53) rotate(-35)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,0,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style type="text/css">.cls-1{fill:#764d80;}.cls-2{fill:#afdbc5;}</style></defs><title>Asset 1</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path class="cls-1" d="M61.67,0H20.56A20.56,20.56,0,0,0,0,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H61.67A51.38,51.38,0,0,0,61.67,0Z"/><circle class="cls-2" cx="20.59" cy="20.57" r="20.56" transform="matrix(0.82, -0.57, 0.57, 0.82, -8.07, 15.53)"/><path class="cls-2" d="M109.36,111.56a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.58,67.57Z"/><path class="cls-2" d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path class="cls-2" d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,1,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path class="cls-2" d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path class="cls-2" d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.99 143.93"><defs><style type="text/css">.cls-1{fill:#fff;}</style></defs><title>Asset 6</title><g id="Layer_2" data-name="Layer 2"><g id="Design"><path d="M146.53,51.12h25.61a2.57,2.57,0,0,0,0-5.14H146.53a2.57,2.57,0,0,0,0,5.14Z"/><path d="M146.53,5.14h7.66v7.79l-.05,0-9,6.32a2.57,2.57,0,0,0,2.95,4.21l7.23-5.06a10.24,10.24,0,0,0,19.42-4.59V2.64s0,0,0-.07A2.57,2.57,0,0,0,172.14,0H146.53a2.57,2.57,0,0,0,0,5.14Zm23,8.71a5.12,5.12,0,1,1-10.23,0V5.14h10.23Z"/><path d="M172.14,118.28a2.57,2.57,0,0,0-2.57,2.57v7.6h-23A2.57,2.57,0,0,0,144,131h0a2.57,2.57,0,0,0,2.57,2.57h23v7.78a2.57,2.57,0,0,0,5.14,0V131h0V120.85A2.57,2.57,0,0,0,172.14,118.28Z"/><path d="M159.34,72.63A15.65,15.65,0,1,0,175,88.28,15.67,15.67,0,0,0,159.34,72.63Zm0,26.16a10.51,10.51,0,1,1,10.51-10.51A10.52,10.52,0,0,1,159.34,98.79Z"/><path d="M62.33,0H21.22A20.56,20.56,0,0,0,.66,20.57v102.8a20.56,20.56,0,0,0,41.12,0V102.79H62.33A51.38,51.38,0,0,0,62.33,0Z"/><path class="cls-1" d="M21.22,138.81A15.45,15.45,0,0,1,5.79,123.37V20.57A15.45,15.45,0,0,1,21.09,5.14H62.33a46.26,46.26,0,0,1,0,92.51H36.65v25.71A15.45,15.45,0,0,1,21.22,138.81Z"/><path d="M21.22,133.68a10.32,10.32,0,0,1-10.3-10.3V20.57A10.33,10.33,0,0,1,21,10.27H62.33a41.13,41.13,0,0,1,0,82.26H31.52v30.84A10.32,10.32,0,0,1,21.22,133.68Z"/><path class="cls-1" d="M21.22,128.55A5.18,5.18,0,0,1,16,123.37V20.57a5.2,5.2,0,0,1,5-5.17H62.33a36,36,0,0,1,0,72H26.39v36A5.18,5.18,0,0,1,21.22,128.55Z"/><path d="M21.27,82.28H62.33a30.87,30.87,0,0,0,0-61.75H21.22Z"/><path class="cls-1" d="M26.39,77.15l0-51.49h36a25.75,25.75,0,0,1,0,51.49Z"/><path d="M31.51,72l0-41.23H62.33a20.62,20.62,0,0,1,0,41.23Z"/><path class="cls-1" d="M36.64,66.9l0-31H62.33a15.49,15.49,0,0,1,0,31Z"/><path d="M41.76,61.77l0-20.72H62.33a10.36,10.36,0,0,1,0,20.72Z"/><path class="cls-1" d="M46.89,56.64V46.18H62.33a5.23,5.23,0,0,1,0,10.47Z"/><circle cx="20.56" cy="20.57" r="20.56" transform="translate(-8.08 15.51) rotate(-35)"/><path d="M109.34,111.57a20.56,20.56,0,1,1-33.69,23.59l-30.79-44A20.56,20.56,0,0,1,78.55,67.58Z"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |