Compare commits
1709 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
320ea9eb4e | ||
|
|
86d8cde9b4 | ||
|
|
bf759711ef | ||
|
|
068ffc2167 | ||
|
|
95304fe001 | ||
|
|
2de64fca02 | ||
|
|
3211dd2a8f | ||
|
|
b6dc25a368 | ||
|
|
4e64242883 | ||
|
|
fcd3b501eb | ||
|
|
62ed098687 | ||
|
|
2a93ddfb99 | ||
|
|
387392f38b | ||
|
|
5b298b4a04 | ||
|
|
cb78684282 | ||
|
|
67704612df | ||
|
|
f3c8b51520 | ||
|
|
b1057d63a1 | ||
|
|
2ccdf0e396 | ||
|
|
93e6ccb9e4 | ||
|
|
196ef60a82 | ||
|
|
478e5667b4 | ||
|
|
06ea000f42 | ||
|
|
d1b8e77fdc | ||
|
|
8cf2654c5b | ||
|
|
18531146f7 | ||
|
|
c274c1bb28 | ||
|
|
42a8522e98 | ||
|
|
960e165c7d | ||
|
|
eab23a9e66 | ||
|
|
c7b626082c | ||
|
|
59f362495a | ||
|
|
6c44437c6f | ||
|
|
fed8ae68e9 | ||
|
|
934a2a67bc | ||
|
|
05345b8582 | ||
|
|
cef5de2be4 | ||
|
|
7b4299d5da | ||
|
|
ec20b0e0e3 | ||
|
|
ff1531b836 | ||
|
|
1675c8a79a | ||
|
|
bb90987e7c | ||
|
|
ecea6abeb6 | ||
|
|
4a2f3136c6 | ||
|
|
d12b02fac5 | ||
|
|
1e564b6ad1 | ||
|
|
c77daa8226 | ||
|
|
fa35814344 | ||
|
|
48efcaa785 | ||
|
|
f3f6cc87d9 | ||
|
|
29cdb5290b | ||
|
|
77524ae1f2 | ||
|
|
30ba9d7e27 | ||
|
|
9652fd2844 | ||
|
|
d2ece1c1f2 | ||
|
|
8bdc257963 | ||
|
|
88f9ec313f | ||
|
|
8ad5126408 | ||
|
|
1e27847015 | ||
|
|
e67eca77ff | ||
|
|
ba46a9d81a | ||
|
|
49cccc6927 | ||
|
|
5977e9141d | ||
|
|
c0982293bf | ||
|
|
ae6ef62160 | ||
|
|
d95b08d4fd | ||
|
|
128da6db04 | ||
|
|
2701607810 | ||
|
|
4055fe183b | ||
|
|
1c47812877 | ||
|
|
060bed8559 | ||
|
|
4a3c173adb | ||
|
|
8cf3ba424a | ||
|
|
9c40de5bf1 | ||
|
|
11a2ed0743 | ||
|
|
01a9931d92 | ||
|
|
38bcc6c293 | ||
|
|
bceb9b4972 | ||
|
|
ecdc285378 | ||
|
|
6d111e5f68 | ||
|
|
9aed2343c1 | ||
|
|
733d54e339 | ||
|
|
267bc32e23 | ||
|
|
7acb4973d8 | ||
|
|
39ba8c2ad3 | ||
|
|
621ac62c7e | ||
|
|
652306edd0 | ||
|
|
b9b4dccff4 | ||
|
|
ce6d2d9c69 | ||
|
|
e842f78457 | ||
|
|
cab3657ab0 | ||
|
|
a7aa980e58 | ||
|
|
6a0a419f0c | ||
|
|
94e8303022 | ||
|
|
ccfcfa71df | ||
|
|
cfdcd61e51 | ||
|
|
b89c20ff40 | ||
|
|
8caaf057e8 | ||
|
|
a52c295a38 | ||
|
|
8aa185070b | ||
|
|
de60d4d37f | ||
|
|
6e5658431b | ||
|
|
6df5457305 | ||
|
|
fd50b38630 | ||
|
|
d41b24f9ae | ||
|
|
aa5e32f0ee | ||
|
|
749d096931 | ||
|
|
8e86c7d81a | ||
|
|
148cfd1b53 | ||
|
|
93c1277fd0 | ||
|
|
23e069ffa8 | ||
|
|
6e7fab40ac | ||
|
|
8a7cac7c03 | ||
|
|
932e7b4af5 | ||
|
|
2f8a7fa296 | ||
|
|
5e6f71cd32 | ||
|
|
ce0058864f | ||
|
|
5a8753de85 | ||
|
|
c646316a97 | ||
|
|
6df8988f54 | ||
|
|
5b534c8b1a | ||
|
|
ab2e85f6c7 | ||
|
|
975a121c55 | ||
|
|
64cf032181 | ||
|
|
d8a56be5e8 | ||
|
|
286b64274c | ||
|
|
0cb2404735 | ||
|
|
0a8bbf14a6 | ||
|
|
eb1dd58a0b | ||
|
|
a79df7d815 | ||
|
|
e0c11998c3 | ||
|
|
de72eceecf | ||
|
|
c46e53ab24 | ||
|
|
2c28fa6a57 | ||
|
|
f010a3ec0d | ||
|
|
e390fb4fc5 | ||
|
|
a4ce77cbcc | ||
|
|
18613e3b6f | ||
|
|
278fdebf43 | ||
|
|
a122bb4899 | ||
|
|
22ed8caed3 | ||
|
|
8b6ecd1d2e | ||
|
|
f2703f0b7b | ||
|
|
1efb92b913 | ||
|
|
5ccf84f7a2 | ||
|
|
c3368f6de6 | ||
|
|
77e971cb9b | ||
|
|
003fa1b059 | ||
|
|
03aa9e9712 | ||
|
|
55699e27bc | ||
|
|
bf28e109d3 | ||
|
|
6b476876d9 | ||
|
|
fd862e575b | ||
|
|
7fd6f5b3ff | ||
|
|
42e94d8f92 | ||
|
|
b572fce658 | ||
|
|
276e867f9a | ||
|
|
b2d4608cdb | ||
|
|
9d21c36ddf | ||
|
|
983290aa5b | ||
|
|
88b9fc25d2 | ||
|
|
60c7fb0056 | ||
|
|
fa6da1902f | ||
|
|
5cc3ac00c7 | ||
|
|
33daa21ad9 | ||
|
|
c4d1bdc44d | ||
|
|
ca99c732f8 | ||
|
|
1f79808cf0 | ||
|
|
5c0e1100ed | ||
|
|
d0b763c16e | ||
|
|
b962751c96 | ||
|
|
94e8553b73 | ||
|
|
351b625975 | ||
|
|
a2b6dbda14 | ||
|
|
a6564f8f84 | ||
|
|
4dbe165c18 | ||
|
|
f29a42411e | ||
|
|
02b0800b22 | ||
|
|
2cfa431cad | ||
|
|
fe4068afce | ||
|
|
1c23603c25 | ||
|
|
c2a86fcc74 | ||
|
|
d42c9b5dbc | ||
|
|
3b6429c163 | ||
|
|
6896f8ea15 | ||
|
|
a3768c7d74 | ||
|
|
c9a0a66f18 | ||
|
|
db1ad39c6b | ||
|
|
9f04c28bfd | ||
|
|
10631d7e71 | ||
|
|
cfff10622a | ||
|
|
b769c7d9b6 | ||
|
|
1e0f691a56 | ||
|
|
f0852d1d39 | ||
|
|
1ee422a012 | ||
|
|
ca87820dd5 | ||
|
|
45ddb7e1ad | ||
|
|
fd46777f04 | ||
|
|
5bb36c15d5 | ||
|
|
c5571e8a8d | ||
|
|
b8ab1bc3b2 | ||
|
|
3683e6a9e2 | ||
|
|
c364345e1d | ||
|
|
7da73bbc30 | ||
|
|
177322eca4 | ||
|
|
506491d13d | ||
|
|
e884911b60 | ||
|
|
7b20fca1ac | ||
|
|
e2c2e59442 | ||
|
|
be66db898c | ||
|
|
5d9d6ac12b | ||
|
|
c6d3bed8da | ||
|
|
e74c429695 | ||
|
|
90a37852cc | ||
|
|
1763be2956 | ||
|
|
9797c54a4d | ||
|
|
c5114e2cb3 | ||
|
|
e3b22dabce | ||
|
|
ba67796992 | ||
|
|
d482c60a98 | ||
|
|
ebe8d38a91 | ||
|
|
c76081d99c | ||
|
|
bef9beff16 | ||
|
|
25e82ff5e4 | ||
|
|
13ffba1c99 | ||
|
|
a0c1446e9f | ||
|
|
657b520908 | ||
|
|
51e8e8c2c8 | ||
|
|
1e534a2a10 | ||
|
|
9fe30524b2 | ||
|
|
e6b4249cf3 | ||
|
|
57ef0e9024 | ||
|
|
9ed290b8f6 | ||
|
|
d2be554e1b | ||
|
|
e7a807ab5b | ||
|
|
9ff8f8587b | ||
|
|
a6f31c60bd | ||
|
|
4643dea2ad | ||
|
|
f70bf9c5bd | ||
|
|
557e6a800f | ||
|
|
17a391d3cf | ||
|
|
fc989f3820 | ||
|
|
2be382afab | ||
|
|
b08f81a8dc | ||
|
|
535e00c6d0 | ||
|
|
db1abf3746 | ||
|
|
66dde4415d | ||
|
|
ce3deb4057 | ||
|
|
2209ff2272 | ||
|
|
1502b0ae3e | ||
|
|
553669de45 | ||
|
|
4952b4470d | ||
|
|
5450967d00 | ||
|
|
37b9e4f200 | ||
|
|
254275a8e0 | ||
|
|
8434813ad6 | ||
|
|
dcae8a8a2f | ||
|
|
6fa7eca60b | ||
|
|
bae55f4b2f | ||
|
|
7278f6db76 | ||
|
|
b553bb1cb0 | ||
|
|
3b67382f67 | ||
|
|
19d5ba5c0e | ||
|
|
96c641c2a0 | ||
|
|
1a50910910 | ||
|
|
40f9b32a75 | ||
|
|
975d7268a1 | ||
|
|
7bda952ee5 | ||
|
|
1c3052a580 | ||
|
|
7c66c4a4f7 | ||
|
|
c6f3a66cad | ||
|
|
4ab02f5b9c | ||
|
|
2ab2b2306d | ||
|
|
3a7f01e16a | ||
|
|
e5a2cea6b0 | ||
|
|
be215b3b1e | ||
|
|
2d5c2d24e5 | ||
|
|
038238a333 | ||
|
|
bfdad2f47c | ||
|
|
2489ea0d5b | ||
|
|
053f071f41 | ||
|
|
caf93b9203 | ||
|
|
f0bfd7224f | ||
|
|
f13becc50b | ||
|
|
4b88f7b845 | ||
|
|
a81cc685b2 | ||
|
|
b6098a26b4 | ||
|
|
d6abf89a7a | ||
|
|
dd55fe90bc | ||
|
|
5a53268534 | ||
|
|
1f9a65e389 | ||
|
|
81055e61a6 | ||
|
|
8a1a47e773 | ||
|
|
193d82789f | ||
|
|
7f09d1d0d7 | ||
|
|
187d7b3e3a | ||
|
|
5d1fcdaded | ||
|
|
36b24d0a20 | ||
|
|
f9d7cf0e19 | ||
|
|
47a10a0288 | ||
|
|
e665252b86 | ||
|
|
a3411072ba | ||
|
|
776b0e23ae | ||
|
|
3f25fb7d5f | ||
|
|
053e6fc223 | ||
|
|
a2ea115650 | ||
|
|
3f7e9cb46f | ||
|
|
cefe50e8a9 | ||
|
|
ff9d5df0e0 | ||
|
|
3716d69b0b | ||
|
|
d5be43cc85 | ||
|
|
481ff5c81e | ||
|
|
3e26060e99 | ||
|
|
d93bfbf693 | ||
|
|
a7e15dc21e | ||
|
|
bb566cb11f | ||
|
|
28081abe1c | ||
|
|
e7c00a3066 | ||
|
|
446585ad68 | ||
|
|
4ebca9ddde | ||
|
|
4c6655bd9a | ||
|
|
cbc7288242 | ||
|
|
78627ecb08 | ||
|
|
bf9582c97e | ||
|
|
1ab3d57378 | ||
|
|
b36d196873 | ||
|
|
e31029da89 | ||
|
|
787bcf7752 | ||
|
|
8c3d50c6dc | ||
|
|
532431b0ad | ||
|
|
cfeee25488 | ||
|
|
608b7ef89a | ||
|
|
4063ef39a4 | ||
|
|
eeb2e2e3af | ||
|
|
2573900c30 | ||
|
|
2acab563d9 | ||
|
|
5f31762220 | ||
|
|
b7b9554364 | ||
|
|
f15fb904bf | ||
|
|
86e4221182 | ||
|
|
dfe8b25dd7 | ||
|
|
53050b3845 | ||
|
|
6ce278114f | ||
|
|
48ff9673b9 | ||
|
|
1999d09901 | ||
|
|
f93a79ae37 | ||
|
|
fac56be499 | ||
|
|
638012f3d0 | ||
|
|
bf452dfa92 | ||
|
|
2b14c98eb0 | ||
|
|
f164ac90db | ||
|
|
14abbb1bbb | ||
|
|
91db26437d | ||
|
|
76054a9e33 | ||
|
|
ae9c53bdf8 | ||
|
|
0dd7b39bb1 | ||
|
|
4a0ea0c51c | ||
|
|
668e8dee5d | ||
|
|
8ec3cf6a43 | ||
|
|
a287408a7a | ||
|
|
78124ef224 | ||
|
|
45e0bb281f | ||
|
|
7a6d863ff7 | ||
|
|
feb9e1d513 | ||
|
|
1a5c1a4b42 | ||
|
|
e41ed92f49 | ||
|
|
7e485b8095 | ||
|
|
92773b1a12 | ||
|
|
7cadb0d35a | ||
|
|
e1f572e1f4 | ||
|
|
ead323c1af | ||
|
|
20c059280c | ||
|
|
50eb8f2322 | ||
|
|
15f418f2cc | ||
|
|
b133546ca6 | ||
|
|
5219d79e27 | ||
|
|
89f97f57cb | ||
|
|
4c63428b71 | ||
|
|
704715de8f | ||
|
|
0d48f10806 | ||
|
|
275ca9e3ba | ||
|
|
710fa4a6f0 | ||
|
|
b1d653a230 | ||
|
|
1b736e9e04 | ||
|
|
1c197ad93d | ||
|
|
a1ba5003d3 | ||
|
|
f26c6f890f | ||
|
|
eb11d5ceda | ||
|
|
43ebcfdee5 | ||
|
|
d9272c3b33 | ||
|
|
1d7f7b6c38 | ||
|
|
07d7af6e75 | ||
|
|
4da1af9a7b | ||
|
|
0840175d6f | ||
|
|
b6e40ea812 | ||
|
|
c81bc22943 | ||
|
|
547b7a3c6f | ||
|
|
5eec3c9541 | ||
|
|
f725dd5a7e | ||
|
|
a3cba66450 | ||
|
|
bab92fca7b | ||
|
|
c37c1dffd4 | ||
|
|
127505af0b | ||
|
|
cfd20d23e8 | ||
|
|
e4b56d4e40 | ||
|
|
c86c2c51bb | ||
|
|
5a623810cb | ||
|
|
444e01deae | ||
|
|
d25ebdc818 | ||
|
|
24e82abf80 | ||
|
|
cfa13867e5 | ||
|
|
34770a2333 | ||
|
|
2c5fa155ae | ||
|
|
bc6941589c | ||
|
|
12afdad291 | ||
|
|
4799d30077 | ||
|
|
fafad0d555 | ||
|
|
3f4133b163 | ||
|
|
68746bcecb | ||
|
|
0fbb4ac333 | ||
|
|
f2e4f626c1 | ||
|
|
2f530dc970 | ||
|
|
87e6aa48bb | ||
|
|
d10a44f8eb | ||
|
|
6359961a82 | ||
|
|
946f76a442 | ||
|
|
616912d85f | ||
|
|
bd38b96095 | ||
|
|
12d9d7741b | ||
|
|
91a119393c | ||
|
|
c82afd8944 | ||
|
|
84c71fce16 | ||
|
|
a0ab252bc9 | ||
|
|
08ace15f95 | ||
|
|
e9a38bab1e | ||
|
|
e63773e5c8 | ||
|
|
bcebf58b76 | ||
|
|
2209e68ae0 | ||
|
|
6a0b89feaa | ||
|
|
6eb8693546 | ||
|
|
c5f53b23fa | ||
|
|
11127c0d97 | ||
|
|
1af930437a | ||
|
|
94bfebeef1 | ||
|
|
45c4eafbd7 | ||
|
|
741b775d3e | ||
|
|
e09c99102e | ||
|
|
1d4020ffc6 | ||
|
|
5d11e321a8 | ||
|
|
9dd3e50ebd | ||
|
|
ad7dd7584e | ||
|
|
c1a827f6d4 | ||
|
|
440ad70d79 | ||
|
|
a1b2887bf3 | ||
|
|
da60cac833 | ||
|
|
db9bfb4b2f | ||
|
|
c3bdc48ee3 | ||
|
|
1c75f375c3 | ||
|
|
7c5e1db6a2 | ||
|
|
82c0ea792a | ||
|
|
70eecb754e | ||
|
|
ad036b0d6a | ||
|
|
15b4517e35 | ||
|
|
d2a8abe769 | ||
|
|
8d43fb850d | ||
|
|
11d34512a0 | ||
|
|
604e5d788e | ||
|
|
73b18fc1dd | ||
|
|
d9ba6962c7 | ||
|
|
5cc91274d1 | ||
|
|
3da1a3e270 | ||
|
|
e840dc6687 | ||
|
|
3f9ddaf409 | ||
|
|
005188735a | ||
|
|
a6e4114151 | ||
|
|
5d91a94252 | ||
|
|
25db207e24 | ||
|
|
ab58eab9f4 | ||
|
|
96c39ec100 | ||
|
|
c5309ce11e | ||
|
|
cedab7f504 | ||
|
|
ca2efcac8a | ||
|
|
f1efe2b589 | ||
|
|
54715e9c43 | ||
|
|
e1f8e87327 | ||
|
|
88d94cad92 | ||
|
|
7370bbacea | ||
|
|
e9b85a10a6 | ||
|
|
e23fd9d491 | ||
|
|
c49b0348bd | ||
|
|
3c6b8bcf9b | ||
|
|
a6473bc922 | ||
|
|
10a790df88 | ||
|
|
b79748bbb1 | ||
|
|
7eeafee1c2 | ||
|
|
eabaead700 | ||
|
|
d581525a61 | ||
|
|
f9adb4e455 | ||
|
|
d79564021f | ||
|
|
2acbea014b | ||
|
|
2882ef6d9f | ||
|
|
8441ac4091 | ||
|
|
20c896413b | ||
|
|
13c72779af | ||
|
|
4d565990c9 | ||
|
|
5cdf5499d0 | ||
|
|
c3c44e324b | ||
|
|
c7da83a702 | ||
|
|
dbd42c4af2 | ||
|
|
d0db6aa509 | ||
|
|
43068e0613 | ||
|
|
a498176043 | ||
|
|
acb40c6133 | ||
|
|
b7d83c7a1f | ||
|
|
1028da116f | ||
|
|
c8571d7bc7 | ||
|
|
f6951b9ae0 | ||
|
|
d42cecc32a | ||
|
|
7d210c8e0d | ||
|
|
c5014f9471 | ||
|
|
6db3f249c6 | ||
|
|
5a1ef31b49 | ||
|
|
8ca11756be | ||
|
|
76428bd19b | ||
|
|
faea8fd2ec | ||
|
|
79830049c4 | ||
|
|
1e895e960f | ||
|
|
a3115c14ac | ||
|
|
c33363d0bd | ||
|
|
44856ca8cd | ||
|
|
67190774cc | ||
|
|
d5a9efa96a | ||
|
|
d5753bc306 | ||
|
|
e96a02ab35 | ||
|
|
ec43c3ae5a | ||
|
|
0bb44f2034 | ||
|
|
fbd3f3db3f | ||
|
|
d82e91ca20 | ||
|
|
c7fb1d79c4 | ||
|
|
0ced767ef2 | ||
|
|
39b27a9d7a | ||
|
|
6a1fd8b1c6 | ||
|
|
d8ddb142a9 | ||
|
|
fbbf9dede8 | ||
|
|
214658b99e | ||
|
|
415fe3463d | ||
|
|
6234e56e78 | ||
|
|
f82b2c0d3f | ||
|
|
a4214300ec | ||
|
|
6a090bd5f1 | ||
|
|
c9bb3dd469 | ||
|
|
6fd10042fb | ||
|
|
aa25f39fe9 | ||
|
|
860047c2d3 | ||
|
|
d0eaee60e9 | ||
|
|
d303a88803 | ||
|
|
f4ef586681 | ||
|
|
8f551c8b32 | ||
|
|
d3e194aefe | ||
|
|
85d963047e | ||
|
|
df9833472f | ||
|
|
99f7133afe | ||
|
|
1c023b5218 | ||
|
|
bf692e8da3 | ||
|
|
7960a5785d | ||
|
|
8579c30909 | ||
|
|
845fcf0864 | ||
|
|
24b062d8dd | ||
|
|
7cfcb62c25 | ||
|
|
b02dda405c | ||
|
|
bc60cba2b8 | ||
|
|
4df1743ed1 | ||
|
|
e3bf91b99b | ||
|
|
d06b129156 | ||
|
|
f074c7e5b7 | ||
|
|
e334f1e035 | ||
|
|
84e2fcad54 | ||
|
|
42236d6c3d | ||
|
|
6ce8516b93 | ||
|
|
7237e919be | ||
|
|
67407ec667 | ||
|
|
8be0fd0867 | ||
|
|
e75822c6fd | ||
|
|
6a465e6589 | ||
|
|
2290549349 | ||
|
|
bf07048d7b | ||
|
|
3134837d56 | ||
|
|
5d8ada0219 | ||
|
|
c7066c0796 | ||
|
|
69ea116b2b | ||
|
|
18756aedf6 | ||
|
|
290b184491 | ||
|
|
707ca53a23 | ||
|
|
0d386d3c14 | ||
|
|
8e186f7c62 | ||
|
|
708cd5335d | ||
|
|
fd6d947df3 | ||
|
|
6a9d19e73d | ||
|
|
c33c74960e | ||
|
|
f11f99366d | ||
|
|
8af076a796 | ||
|
|
28dc477b54 | ||
|
|
7fb53edc3c | ||
|
|
381547d668 | ||
|
|
f72f75ee61 | ||
|
|
b39a7ac939 | ||
|
|
b5d4cac90a | ||
|
|
20cc6f4d0e | ||
|
|
b9c337d0b7 | ||
|
|
3654856be5 | ||
|
|
4f72f4c649 | ||
|
|
dae655fd01 | ||
|
|
933be54035 | ||
|
|
f1d8fd8838 | ||
|
|
a50edc3d25 | ||
|
|
cddb8082f4 | ||
|
|
62c42a3513 | ||
|
|
42f1baaf61 | ||
|
|
5f99470226 | ||
|
|
afec9e8cb0 | ||
|
|
89fd7dda23 | ||
|
|
3563efc7de | ||
|
|
febf3c249e | ||
|
|
ea4ac9db30 | ||
|
|
e6277c0544 | ||
|
|
71a34dac5f | ||
|
|
61b2da9c8a | ||
|
|
d6ac17d0ee | ||
|
|
3a85c966d0 | ||
|
|
f8747748f9 | ||
|
|
cc1350ba5b | ||
|
|
bb7a33ed8e | ||
|
|
fe4ce88439 | ||
|
|
2c7769ae26 | ||
|
|
542e962be9 | ||
|
|
e65cd2636b | ||
|
|
2c17b54ef9 | ||
|
|
0999359454 | ||
|
|
dace93abb3 | ||
|
|
eed2c6ec4c | ||
|
|
df2c5d38b0 | ||
|
|
a6b6775aa1 | ||
|
|
79857b98b3 | ||
|
|
0c3535cff8 | ||
|
|
626e6930a5 | ||
|
|
44f5cc9070 | ||
|
|
e45a4b86d8 | ||
|
|
30be732ae8 | ||
|
|
643dd0b679 | ||
|
|
2b45b3caa2 | ||
|
|
b7282589de | ||
|
|
6bc7f2a5a4 | ||
|
|
3731e2a74a | ||
|
|
bb40f38124 | ||
|
|
f0e5aa312e | ||
|
|
ceafb0d130 | ||
|
|
70c2a863cc | ||
|
|
d813275f42 | ||
|
|
5650a02cfb | ||
|
|
0503c9eea5 | ||
|
|
abae419853 | ||
|
|
71ccbf2a1b | ||
|
|
92a64f59a4 | ||
|
|
6d56447de2 | ||
|
|
e189fff856 | ||
|
|
8fc63c4d78 | ||
|
|
e6e8416aec | ||
|
|
a792a6e6ae | ||
|
|
07e8ae716c | ||
|
|
0b1b568893 | ||
|
|
3a827d1c48 | ||
|
|
622b3afce0 | ||
|
|
107f6b4277 | ||
|
|
32b608ff2f | ||
|
|
eb42b7b26a | ||
|
|
93effc8890 | ||
|
|
5d75f11cbc | ||
|
|
0449647cf9 | ||
|
|
c0b75c2ef5 | ||
|
|
ca260a92e3 | ||
|
|
e6c16cf28d | ||
|
|
54dbffaf30 | ||
|
|
17dbdbd0a9 | ||
|
|
ca8fecea9c | ||
|
|
f1c79eaebf | ||
|
|
6c1a1fb9ad | ||
|
|
35d158cfee | ||
|
|
a5047cb17b | ||
|
|
5006b36e2d | ||
|
|
c6e20f715b | ||
|
|
fcc9c2778d | ||
|
|
e20b973872 | ||
|
|
7951df09ad | ||
|
|
f580edaf91 | ||
|
|
102941c18c | ||
|
|
0c8b2b23da | ||
|
|
aa33be6b03 | ||
|
|
43622e603d | ||
|
|
7100030c22 | ||
|
|
63a3b1acb9 | ||
|
|
6fbbc9d078 | ||
|
|
cbe394025d | ||
|
|
29af1669e1 | ||
|
|
e6f76159b0 | ||
|
|
e0603abdd3 | ||
|
|
2a1ce859c4 | ||
|
|
8452fc6c58 | ||
|
|
2ac0179d65 | ||
|
|
8b74e9a075 | ||
|
|
afbf6a91bb | ||
|
|
8e2ae6c288 | ||
|
|
fa99e8f0d0 | ||
|
|
d567534609 | ||
|
|
8bec5a96f5 | ||
|
|
d8a6fcf979 | ||
|
|
4669c45ff7 | ||
|
|
2c405d1769 | ||
|
|
821957137a | ||
|
|
b8fbc91f33 | ||
|
|
404610fbcd | ||
|
|
3f3d7f549b | ||
|
|
7dd8baba5a | ||
|
|
eb0af13887 | ||
|
|
72310ed3c6 | ||
|
|
e86a9ce7eb | ||
|
|
c2c180e38d | ||
|
|
0b0853a223 | ||
|
|
c573d5703b | ||
|
|
8da8867bac | ||
|
|
ccc3ff4aac | ||
|
|
ca471b1408 | ||
|
|
c3882e9d51 | ||
|
|
3bceb0d8ec | ||
|
|
0753ff85ed | ||
|
|
5f7c30e840 | ||
|
|
b9f99f9941 | ||
|
|
2c82b3610d | ||
|
|
c0da061072 | ||
|
|
90f2398219 | ||
|
|
18039bc3f4 | ||
|
|
5dc5503896 | ||
|
|
a573ab7c76 | ||
|
|
ea374735e1 | ||
|
|
9f8b4cf892 | ||
|
|
3c30db7edf | ||
|
|
95d76638dc | ||
|
|
7e1e666172 | ||
|
|
10e5b24cfd | ||
|
|
0c768a24e4 | ||
|
|
a8cf5b8efa | ||
|
|
f48f4a8812 | ||
|
|
d6610f0dd0 | ||
|
|
261296e41b | ||
|
|
26a16bf0ca | ||
|
|
9c0129c4b0 | ||
|
|
b168e14985 | ||
|
|
73233c01ba | ||
|
|
90006e81db | ||
|
|
f544b7d7b4 | ||
|
|
5f12696bed | ||
|
|
41d06fc8c2 | ||
|
|
aff65abe91 | ||
|
|
64afce5f66 | ||
|
|
52ca295131 | ||
|
|
6b5da7f8cf | ||
|
|
43d7e99a50 | ||
|
|
cc288d1e43 | ||
|
|
150601c51e | ||
|
|
375ebeb661 | ||
|
|
7f7aab044c | ||
|
|
fd7a3190f8 | ||
|
|
c8dd62cecf | ||
|
|
11ce4ee807 | ||
|
|
40d14698b8 | ||
|
|
34ed55d3ac | ||
|
|
954b2f22f6 | ||
|
|
b39820dcb6 | ||
|
|
1a24885110 | ||
|
|
29fcce23b1 | ||
|
|
a2d04f4806 | ||
|
|
9fb67b9f03 | ||
|
|
46e5d64857 | ||
|
|
9c63c6045d | ||
|
|
3c0bbfe6f0 | ||
|
|
61a7062030 | ||
|
|
69f180a5ec | ||
|
|
10c1ee70e8 | ||
|
|
c5e495bfe5 | ||
|
|
0efda2df91 | ||
|
|
4bdb2acd29 | ||
|
|
56c95d1d1b | ||
|
|
d44bfc3ce3 | ||
|
|
527e39eee8 | ||
|
|
2beb1dd8d9 | ||
|
|
694a5de2c3 | ||
|
|
feee09cd28 | ||
|
|
6dd8300c73 | ||
|
|
4281097828 | ||
|
|
1e62934220 | ||
|
|
4b5d7bbfa4 | ||
|
|
f5f1305af8 | ||
|
|
110d33ddf8 | ||
|
|
d28dc670ea | ||
|
|
3970a30e14 | ||
|
|
24e573e537 | ||
|
|
9f6b761d98 | ||
|
|
9f3c04dfb5 | ||
|
|
6239508b39 | ||
|
|
71c7ef5b5e | ||
|
|
35a6ec707f | ||
|
|
8eb8f9e724 | ||
|
|
bebdbe2aaa | ||
|
|
eaf11744c7 | ||
|
|
18aa202695 | ||
|
|
a0a9e412b4 | ||
|
|
9ebd8682b5 | ||
|
|
028c6edd8a | ||
|
|
4324f0b7ec | ||
|
|
c940e984f0 | ||
|
|
43bb1d2290 | ||
|
|
7318236286 | ||
|
|
a40d7158de | ||
|
|
0bbe83f8f2 | ||
|
|
2b651ee323 | ||
|
|
3be45f093c | ||
|
|
9d5d43cf3a | ||
|
|
751cc0e86a | ||
|
|
01c3244f75 | ||
|
|
f17c144a60 | ||
|
|
93ca2ad8cf | ||
|
|
a4aac62bcb | ||
|
|
3633d805c8 | ||
|
|
59092e2ec0 | ||
|
|
e6a069af6d | ||
|
|
23aee53c7d | ||
|
|
bdd4b456c4 | ||
|
|
c004ead940 | ||
|
|
69d18dfa6a | ||
|
|
7b353a94d8 | ||
|
|
5496f5baac | ||
|
|
f36b296e2e | ||
|
|
d1819b6361 | ||
|
|
970e24ef26 | ||
|
|
799b9c2074 | ||
|
|
14644077e7 | ||
|
|
9939461d9e | ||
|
|
0403cbfd65 | ||
|
|
24e6605024 | ||
|
|
be0ddb9756 | ||
|
|
bc64230a65 | ||
|
|
763fa0dd21 | ||
|
|
e60715587f | ||
|
|
47194e7079 | ||
|
|
95ebae5d5f | ||
|
|
fe02b3f8d3 | ||
|
|
94e2b9e66e | ||
|
|
d3bf6a1c59 | ||
|
|
97244e8624 | ||
|
|
551470123d | ||
|
|
b307980d8c | ||
|
|
8bba45f396 | ||
|
|
34424a9b3e | ||
|
|
c4991e857d | ||
|
|
05daa71977 | ||
|
|
da8cea9878 | ||
|
|
419ef2c6f8 | ||
|
|
a798f97aa3 | ||
|
|
b17451b867 | ||
|
|
feaea32cdd | ||
|
|
6dcec7c2c5 | ||
|
|
512dc19471 | ||
|
|
425d6b8adf | ||
|
|
81cd20062c | ||
|
|
4acedd2a4b | ||
|
|
d782d3006b | ||
|
|
9c77ffc2a4 | ||
|
|
0ec1ae4ed3 | ||
|
|
6d7553563f | ||
|
|
f22186e6f4 | ||
|
|
4de14a5dc1 | ||
|
|
71727e1474 | ||
|
|
f72e35bf42 | ||
|
|
a8040b00cf | ||
|
|
303b98b7c2 | ||
|
|
13434d620c | ||
|
|
d5215b3593 | ||
|
|
62489846e3 | ||
|
|
f315b1db80 | ||
|
|
f100137e0f | ||
|
|
37092eee01 | ||
|
|
261d187567 | ||
|
|
907a1767f4 | ||
|
|
bf70f830f3 | ||
|
|
b58c87a56b | ||
|
|
27d3dc918e | ||
|
|
7ba0f4b279 | ||
|
|
23e9b3a61e | ||
|
|
06e0d7d72d | ||
|
|
27e11e9627 | ||
|
|
8686691a5a | ||
|
|
8b3a3d163f | ||
|
|
6d0b8bd737 | ||
|
|
53e87562c1 | ||
|
|
02c422cb26 | ||
|
|
3523952ef9 | ||
|
|
4cb2ac7b27 | ||
|
|
4932171bbf | ||
|
|
81c7cb1a87 | ||
|
|
2b80e98bf1 | ||
|
|
8cd5ff5fa1 | ||
|
|
6f10de5e30 | ||
|
|
c58d5c32bb | ||
|
|
7b2b5742c7 | ||
|
|
0dbcb1a49b | ||
|
|
e7a9893e94 | ||
|
|
0f35bc6fd9 | ||
|
|
acfc9d75e0 | ||
|
|
d9ab1a93f8 | ||
|
|
c2dbb34b25 | ||
|
|
ed508a8def | ||
|
|
d5cb804f90 | ||
|
|
c8104a91a4 | ||
|
|
4c8e259b56 | ||
|
|
7a5846a6d4 | ||
|
|
64c8b4b2ef | ||
|
|
99a26e2bcc | ||
|
|
886298674e | ||
|
|
e9a82502b9 | ||
|
|
f855e161d9 | ||
|
|
66e1be1aeb | ||
|
|
8f6440ce17 | ||
|
|
73c75a9b34 | ||
|
|
f916dcd5de | ||
|
|
1ea913cea6 | ||
|
|
a350106f7d | ||
|
|
17f8a81a56 | ||
|
|
7eb089c9de | ||
|
|
6ff0a62338 | ||
|
|
ba5febd222 | ||
|
|
e1026785f7 | ||
|
|
9004474748 | ||
|
|
c1b2098bd9 | ||
|
|
efb9ba6496 | ||
|
|
19d49ed281 | ||
|
|
4ecb65a262 | ||
|
|
d3c72fa697 | ||
|
|
80042ae3aa | ||
|
|
58f1e68961 | ||
|
|
be6a51b123 | ||
|
|
08c72ed874 | ||
|
|
86bd2351bc | ||
|
|
e14a97cf68 | ||
|
|
cf81815bf6 | ||
|
|
c5a9f27c31 | ||
|
|
de812d3f0f | ||
|
|
e31ce39967 | ||
|
|
2da47c3bb3 | ||
|
|
0960ff1fa9 | ||
|
|
749eeb87b2 | ||
|
|
e37c06c563 | ||
|
|
909c0c544c | ||
|
|
40004b5be3 | ||
|
|
b42e91134b | ||
|
|
682abbf66b | ||
|
|
1986e58c5f | ||
|
|
b88069f396 | ||
|
|
344af622b7 | ||
|
|
ad9a995ffa | ||
|
|
21ddc1dbba | ||
|
|
534dec282f | ||
|
|
03573df00f | ||
|
|
6b94d0679c | ||
|
|
1cee253b41 | ||
|
|
40caf20188 | ||
|
|
99ea6f9812 | ||
|
|
405ee3b741 | ||
|
|
9a75f49aa1 | ||
|
|
9c50057909 | ||
|
|
bb878f8a67 | ||
|
|
3097c2855e | ||
|
|
90ff0e58b0 | ||
|
|
e56e55363d | ||
|
|
50ae2dd1b8 | ||
|
|
60f4e245e9 | ||
|
|
9c1e846049 | ||
|
|
0593de85df | ||
|
|
e245281b69 | ||
|
|
ad6ae10a41 | ||
|
|
1c680a2c64 | ||
|
|
648b2f24f6 | ||
|
|
42ef64aebe | ||
|
|
9f0252dfb9 | ||
|
|
bcdf3bf311 | ||
|
|
3e9bfcb3fd | ||
|
|
3ed82c1726 | ||
|
|
90203e4872 | ||
|
|
d93ba54f0e | ||
|
|
f4e8ecf740 | ||
|
|
69e656af76 | ||
|
|
23a23ebd72 | ||
|
|
fdd070c1dd | ||
|
|
0ab9b56a18 | ||
|
|
3df9112cf8 | ||
|
|
9a8d058051 | ||
|
|
6d88710a88 | ||
|
|
e056bd1aa2 | ||
|
|
e7937fd424 | ||
|
|
b80408bcb4 | ||
|
|
10f224ede5 | ||
|
|
17dd681dc8 | ||
|
|
263846bba0 | ||
|
|
0bcf46bacd | ||
|
|
4bf91aa86a | ||
|
|
7a8bd0597a | ||
|
|
e87aa85bae | ||
|
|
5711adb2c9 | ||
|
|
4bd3094bad | ||
|
|
671023d0c8 | ||
|
|
afa0807827 | ||
|
|
4e45d53bd9 | ||
|
|
d40fea9423 | ||
|
|
c15d1a3bce | ||
|
|
77c232760c | ||
|
|
655be5adf4 | ||
|
|
445f3c234c | ||
|
|
5be1a5e3d5 | ||
|
|
a382694b1f | ||
|
|
12020a3f86 | ||
|
|
9fa4ba126b | ||
|
|
5a607918d2 | ||
|
|
d0570ef7cb | ||
|
|
d24fb8c855 | ||
|
|
ac282ccf70 | ||
|
|
42f613e722 | ||
|
|
99b2149deb | ||
|
|
0a3ede7c32 | ||
|
|
5ad7e3b48a | ||
|
|
5270dad789 | ||
|
|
10e305d204 | ||
|
|
cee3858e2e | ||
|
|
b430be9759 | ||
|
|
d71fb4c958 | ||
|
|
eb456ef2b0 | ||
|
|
9a876a3672 | ||
|
|
677c7732cf | ||
|
|
4ebf97550c | ||
|
|
8a99d9b126 | ||
|
|
4dfaec977f | ||
|
|
ba849bce2c | ||
|
|
5de89d4f26 | ||
|
|
b7340cc356 | ||
|
|
b3147aad55 | ||
|
|
9287b00317 | ||
|
|
d7d6f38cb6 | ||
|
|
b34eb08088 | ||
|
|
9389fe47bd | ||
|
|
a929bf91f1 | ||
|
|
04fcb9c531 | ||
|
|
c09d2951b1 | ||
|
|
2c1337b33e | ||
|
|
856a4d2860 | ||
|
|
b3f0888a2e | ||
|
|
e388524a2f | ||
|
|
edc00d858b | ||
|
|
182d571e1b | ||
|
|
e145875164 | ||
|
|
2e56a0aa70 | ||
|
|
4c2269175b | ||
|
|
893cf9c01d | ||
|
|
285947eb66 | ||
|
|
2b4064f3b7 | ||
|
|
6e6bfaa932 | ||
|
|
8d08f3969a | ||
|
|
8ce914a344 | ||
|
|
c6b2e785a5 | ||
|
|
5189fbf686 | ||
|
|
b47665aa44 | ||
|
|
d0e781ccb4 | ||
|
|
e5e0bc2333 | ||
|
|
4828a8a274 | ||
|
|
a1c276f70b | ||
|
|
cb9bc9659b | ||
|
|
65124fd1f2 | ||
|
|
30916d8e19 | ||
|
|
009c01fd7e | ||
|
|
a39d9bf132 | ||
|
|
185d22809e | ||
|
|
74779adc34 | ||
|
|
b5ad2fc744 | ||
|
|
260383ac21 | ||
|
|
b6aedd330e | ||
|
|
989ec6a40a | ||
|
|
c7e972026c | ||
|
|
5a0f671aa4 | ||
|
|
b7109e9ebb | ||
|
|
93395c3ff4 | ||
|
|
2e5b0bcee2 | ||
|
|
40d7826fb9 | ||
|
|
77fb541090 | ||
|
|
0f65bf08b8 | ||
|
|
962944a974 | ||
|
|
08948fe05a | ||
|
|
f3d943270c | ||
|
|
6a10c69df8 | ||
|
|
f335a65d32 | ||
|
|
79a88f378b | ||
|
|
afed60f870 | ||
|
|
989ea4042c | ||
|
|
0bd9606666 | ||
|
|
5173921ce0 | ||
|
|
032eaa4389 | ||
|
|
962fb60ffb | ||
|
|
6d1f4bc2f0 | ||
|
|
844ffdad54 | ||
|
|
6455c66a0b | ||
|
|
af265bc3c2 | ||
|
|
2890490ab4 | ||
|
|
bcff186b10 | ||
|
|
967c374213 | ||
|
|
e172b84603 | ||
|
|
bdb67725c5 | ||
|
|
d6aeeaef2c | ||
|
|
612ad49a8b | ||
|
|
29b561fe41 | ||
|
|
56c720cd4f | ||
|
|
19be527370 | ||
|
|
efc4a5ab9d | ||
|
|
79f8cf8e35 | ||
|
|
26c7a68a66 | ||
|
|
7197d513a3 | ||
|
|
5cccea5846 | ||
|
|
258910504c | ||
|
|
86eb14b7bb | ||
|
|
2add02c62f | ||
|
|
3e3ae5f865 | ||
|
|
62c738ee58 | ||
|
|
6945ecf81d | ||
|
|
66062f200a | ||
|
|
37a5622525 | ||
|
|
d0cd2621ca | ||
|
|
51c1e4485f | ||
|
|
beed9d8034 | ||
|
|
3e22c37425 | ||
|
|
638a9576f8 | ||
|
|
6bfe05323e | ||
|
|
64ad9ec9dd | ||
|
|
f17af19d09 | ||
|
|
d1790dfe17 | ||
|
|
8e6ca53023 | ||
|
|
6924f0519e | ||
|
|
6af836735b | ||
|
|
1252b3ca00 | ||
|
|
1b2f52209d | ||
|
|
5942e93a33 | ||
|
|
c11f2eddf5 | ||
|
|
df99deb480 | ||
|
|
e7c20499ec | ||
|
|
77a216b705 | ||
|
|
1893047a78 | ||
|
|
da94fd5f9e | ||
|
|
159fdb317f | ||
|
|
f61c52aace | ||
|
|
5a5e47f2df | ||
|
|
a02f223a96 | ||
|
|
375207f073 | ||
|
|
81682e0302 | ||
|
|
60eaade6b0 | ||
|
|
54396a3a9c | ||
|
|
8d473f4f50 | ||
|
|
a80fe178ea | ||
|
|
422b4c345b | ||
|
|
c0ec531daa | ||
|
|
47901e4198 | ||
|
|
25a30d63a5 | ||
|
|
1c3ba4b675 | ||
|
|
c5a7d320f7 | ||
|
|
8de9261081 | ||
|
|
f41e9c181c | ||
|
|
cb4303ac23 | ||
|
|
9a78615991 | ||
|
|
dc61c67856 | ||
|
|
7f46e99f9c | ||
|
|
4838fade6c | ||
|
|
1e934f6146 | ||
|
|
aacf50316d | ||
|
|
3d29445373 | ||
|
|
24c48afd2e | ||
|
|
ae93038d66 | ||
|
|
9a55632202 | ||
|
|
6ff9d3cc72 | ||
|
|
6ed549cfb2 | ||
|
|
8a5c89244a | ||
|
|
a67d0b18ff | ||
|
|
abea2d0bdf | ||
|
|
5f9a3b7930 | ||
|
|
4229c21bdc | ||
|
|
45ecca69d3 | ||
|
|
8c7ffe73f3 | ||
|
|
0ae60da68b | ||
|
|
737810475e | ||
|
|
e452862813 | ||
|
|
5be246ec8f | ||
|
|
72afb33c1b | ||
|
|
0b39224d88 | ||
|
|
82b5b35d3b | ||
|
|
b5259f6847 | ||
|
|
10de144b77 | ||
|
|
f62fa2dc4e | ||
|
|
18f6196388 | ||
|
|
c36db03a3a | ||
|
|
9dd508b6f5 | ||
|
|
34443b059c | ||
|
|
666f648c59 | ||
|
|
54bab07483 | ||
|
|
526d510423 | ||
|
|
381237a315 | ||
|
|
512c6dc581 | ||
|
|
170b869a22 | ||
|
|
d0bb68e137 | ||
|
|
95d48bd3e9 | ||
|
|
5e1d63696f | ||
|
|
338f8de787 | ||
|
|
2c4c0f1349 | ||
|
|
39b95ca4ed | ||
|
|
fcbcffe9ba | ||
|
|
501b351f80 | ||
|
|
b72b1cda94 | ||
|
|
074e46b2d9 | ||
|
|
91612cb6f2 | ||
|
|
f193723182 | ||
|
|
a0e23612d4 | ||
|
|
8b12bc9acc | ||
|
|
e2439278f4 | ||
|
|
04f364942e | ||
|
|
0cc5618ba9 | ||
|
|
8208bbf3c0 | ||
|
|
1c8077a7fe | ||
|
|
7c2191f9a0 | ||
|
|
83b1e7ba6c | ||
|
|
ec240a94e6 | ||
|
|
666be5f358 | ||
|
|
7f76bcc976 | ||
|
|
2dbeebac77 | ||
|
|
fa64c5de62 | ||
|
|
0f6823d37e | ||
|
|
172de96ce4 | ||
|
|
f92d768be5 | ||
|
|
52311eb881 | ||
|
|
414a885b54 | ||
|
|
1eccc07673 | ||
|
|
59d3e666fe | ||
|
|
76c28cfa7a | ||
|
|
58273997b9 | ||
|
|
5672701a60 | ||
|
|
711740d156 | ||
|
|
b50a3fa2b8 | ||
|
|
c09c7b6649 | ||
|
|
7e40204eb2 | ||
|
|
d413b80b15 | ||
|
|
73410f64b5 | ||
|
|
cd55feb2b9 | ||
|
|
a9ea672888 | ||
|
|
5455bdffb2 | ||
|
|
0367bf0de4 | ||
|
|
e9ae439b70 | ||
|
|
99d229bb45 | ||
|
|
3d7331159f | ||
|
|
662fe826cb | ||
|
|
ec1a0547d6 | ||
|
|
d507756821 | ||
|
|
ca701df1e4 | ||
|
|
56f85e7f85 | ||
|
|
4509077338 | ||
|
|
4dd5a92817 | ||
|
|
782bd6003b | ||
|
|
15df691017 | ||
|
|
0d6f8a003d | ||
|
|
50cec22aa1 | ||
|
|
b78c05e70b | ||
|
|
e96bf2bdc7 | ||
|
|
1c8c6d5f85 | ||
|
|
1525d0833c | ||
|
|
3fd5e58bd5 | ||
|
|
51d6144591 | ||
|
|
165fae5734 | ||
|
|
dc18f73594 | ||
|
|
12ce92bb83 | ||
|
|
b0b08a37db | ||
|
|
1b75d00de5 | ||
|
|
6ede47d4f7 | ||
|
|
dd3cef5ec2 | ||
|
|
757ccd0c36 | ||
|
|
bfc9ad7761 | ||
|
|
e340f85258 | ||
|
|
89d1232bdc | ||
|
|
cf04b0521e | ||
|
|
a93fb1a0e5 | ||
|
|
50cf9c448a | ||
|
|
da6a00c4dc | ||
|
|
58a5e1f33c | ||
|
|
31e78f5fae | ||
|
|
f4f0a97fc6 | ||
|
|
1c94137f7a | ||
|
|
2e8250f25e | ||
|
|
12062bdfe1 | ||
|
|
bc9a52c510 | ||
|
|
59a2bf8ae7 | ||
|
|
b17cba621e | ||
|
|
5ffee53faa | ||
|
|
869630b7f4 | ||
|
|
291dafa5c8 | ||
|
|
cb670d6783 | ||
|
|
4d889a45e2 | ||
|
|
66d1d88686 | ||
|
|
e4ac1b8dde | ||
|
|
31a549449b | ||
|
|
9bf198bb81 | ||
|
|
03e347bfd9 | ||
|
|
c2796285d5 | ||
|
|
3acfba7bd0 | ||
|
|
9377fb6ce0 | ||
|
|
25c7459464 | ||
|
|
2dceef50b7 | ||
|
|
438a78ed30 | ||
|
|
8e7c7a9c54 | ||
|
|
ad4657df1f | ||
|
|
bc33f8ec02 | ||
|
|
d00671e7a5 | ||
|
|
2b79e131a7 | ||
|
|
c3164a8e84 | ||
|
|
f07ce7b1f1 | ||
|
|
a353ebd834 | ||
|
|
a697fcea04 | ||
|
|
9716849bb9 | ||
|
|
9c5fe77e96 | ||
|
|
0a0203a019 | ||
|
|
8aab61c2e3 | ||
|
|
9d3ff55457 | ||
|
|
19c7fd21a8 | ||
|
|
a5500655a7 | ||
|
|
4a516084a6 | ||
|
|
f583c14e0e | ||
|
|
ddf6126abf | ||
|
|
c389a9d3ce | ||
|
|
cd56f03e07 | ||
|
|
fe1cc3d6d1 | ||
|
|
5f5db5ded7 | ||
|
|
e5a287b4e5 | ||
|
|
13d785894a | ||
|
|
4fd41080ac | ||
|
|
fad697ba2a | ||
|
|
51f27631ef | ||
|
|
04153a3869 | ||
|
|
b0b1cdef35 | ||
|
|
6f6632c08a | ||
|
|
407c5d5ed2 | ||
|
|
b7f9525680 | ||
|
|
68e68508a7 | ||
|
|
e6f693a677 | ||
|
|
6b7174bb35 | ||
|
|
92ea7549d4 | ||
|
|
0a4d1569fb | ||
|
|
4c83e2ce10 | ||
|
|
7c5df81840 | ||
|
|
6afee68831 | ||
|
|
bae549b1cc | ||
|
|
ce9a67d095 | ||
|
|
3356f7c190 | ||
|
|
2ce9eeabed | ||
|
|
5b8e75c068 | ||
|
|
c97fa0d3d1 | ||
|
|
b0bd6ad729 | ||
|
|
d85ddbcd10 | ||
|
|
51807226a7 | ||
|
|
07c8db824e | ||
|
|
75782affd1 | ||
|
|
49117a4138 | ||
|
|
9d52e6af6a | ||
|
|
706835584e | ||
|
|
f7261cc9e7 | ||
|
|
3aae86d20c | ||
|
|
ad0f2830c8 | ||
|
|
056f2717ed | ||
|
|
f67eb5f9f3 | ||
|
|
c69efbffd2 | ||
|
|
3dfc72dad0 | ||
|
|
372cdc4b9f | ||
|
|
01d66087aa | ||
|
|
e0e932df02 | ||
|
|
3ca653627d | ||
|
|
f4acaad407 | ||
|
|
6787a96d71 | ||
|
|
e7f5022a75 | ||
|
|
93e7a626bf | ||
|
|
448335e9bc | ||
|
|
7ad68296dd | ||
|
|
3d28db3453 | ||
|
|
56c0ea0a4f | ||
|
|
b964c74ce8 | ||
|
|
a3445fb2fd | ||
|
|
0d11b3dd26 | ||
|
|
deb96646a3 | ||
|
|
a421630789 | ||
|
|
4f0422ee94 | ||
|
|
0f548a431b | ||
|
|
742b54f32d | ||
|
|
1c9715f700 | ||
|
|
52b1e17c36 | ||
|
|
9273f5cc67 | ||
|
|
a8366387ab | ||
|
|
5e02715a2c | ||
|
|
3506f2db12 | ||
|
|
66c9fd44df | ||
|
|
944f5aad0d | ||
|
|
a41e82bb7d | ||
|
|
94964474b2 | ||
|
|
2f46c6ca1f | ||
|
|
33e0b4fc6d | ||
|
|
bb5e7db57e | ||
|
|
e1d0f2f4e9 | ||
|
|
20af8045e8 | ||
|
|
3127fda7fe | ||
|
|
12b27cc56b | ||
|
|
1683bb4636 | ||
|
|
9d13b9437c | ||
|
|
97c3e8fa3f | ||
|
|
76c41a8295 | ||
|
|
edbd20899e | ||
|
|
8e25689c24 | ||
|
|
057c348d08 | ||
|
|
6866a74d95 | ||
|
|
cbba8c0d76 | ||
|
|
c7c411b3f3 | ||
|
|
c7782c51db | ||
|
|
7ae0f38c45 | ||
|
|
2c1a5aef1c | ||
|
|
defb173ffe | ||
|
|
0095e00bc7 | ||
|
|
ed5faa4ba9 | ||
|
|
1e02d70052 | ||
|
|
b110c8a2cb | ||
|
|
bdcfabf1ee | ||
|
|
cd28cd172f | ||
|
|
3904c76261 | ||
|
|
cb6e048070 | ||
|
|
9b8719e2d5 | ||
|
|
79e925051a | ||
|
|
a37d2f568c | ||
|
|
e92b51ed98 | ||
|
|
cb9f225f59 | ||
|
|
f4a7f354c5 | ||
|
|
8f96cff104 | ||
|
|
1d3f1cc79e | ||
|
|
25daf01307 | ||
|
|
741066a10e | ||
|
|
44bb2c7c72 | ||
|
|
65c05e0388 | ||
|
|
8cd50d1e82 | ||
|
|
2395b79bfc | ||
|
|
76ac95756f | ||
|
|
d9659219de | ||
|
|
bdc464193d | ||
|
|
b43beaab75 | ||
|
|
4ee607878c | ||
|
|
a0489a9f48 | ||
|
|
8aab9b0fc1 | ||
|
|
4bd3841788 | ||
|
|
b27d829013 | ||
|
|
1669731329 | ||
|
|
4112f23f33 | ||
|
|
eddb97013a | ||
|
|
a075bf7505 | ||
|
|
acca4a72d3 | ||
|
|
1b1470aae2 | ||
|
|
d5b7ff58e2 | ||
|
|
d2eebbc55a | ||
|
|
cf891edce9 | ||
|
|
f541e33356 | ||
|
|
aa30f3e410 | ||
|
|
83e31cac07 | ||
|
|
98d223f094 | ||
|
|
917389131c | ||
|
|
e1f09e0437 | ||
|
|
0f820e6beb | ||
|
|
e2d94adfdb | ||
|
|
c594691b93 | ||
|
|
9395f7faa0 | ||
|
|
9c1f7f1657 | ||
|
|
8bf160532e | ||
|
|
1aa2d546d2 | ||
|
|
143fb1fe21 | ||
|
|
d9b42c4369 | ||
|
|
0075940050 | ||
|
|
7d10560575 | ||
|
|
0adce89eec | ||
|
|
be53bc6138 | ||
|
|
e25d31ceb6 | ||
|
|
70d94c0130 | ||
|
|
55c1b6d72c | ||
|
|
42211ccca6 | ||
|
|
0efd6d9341 | ||
|
|
6b737a3d48 | ||
|
|
f3e47f7b60 | ||
|
|
6b8336db06 | ||
|
|
739ee89fb1 | ||
|
|
fb8440f886 | ||
|
|
d92cbfe305 | ||
|
|
5cfd7477ab | ||
|
|
0992d6545e | ||
|
|
7d644ae9c6 | ||
|
|
9a93a8b28d | ||
|
|
8dc6f2b15b | ||
|
|
f148ff8bfa | ||
|
|
2408bd4d65 | ||
|
|
94c61f8af9 | ||
|
|
85aa5c5b97 | ||
|
|
c88a0ba324 | ||
|
|
11463d410d | ||
|
|
53d590947e | ||
|
|
ea0945d406 | ||
|
|
a9651e2e9c | ||
|
|
9afbdaa2be | ||
|
|
bdc8618889 | ||
|
|
a2de60a75c | ||
|
|
b2e93ec502 | ||
|
|
4fb8d1fa49 | ||
|
|
67cab3ce86 | ||
|
|
3be55e36d9 | ||
|
|
cee0edff7c | ||
|
|
15a389c171 | ||
|
|
d46d3b72c8 | ||
|
|
2e16c6cf41 | ||
|
|
03e2075ba4 | ||
|
|
d9f19fe36c | ||
|
|
b575b4e6ae | ||
|
|
342fd37799 | ||
|
|
e2b81c9637 | ||
|
|
aa9d8e4d14 | ||
|
|
4c815db076 | ||
|
|
b677370597 | ||
|
|
f53d64ab7a | ||
|
|
4461ebf662 | ||
|
|
21a0fe3a48 | ||
|
|
dadc8d0183 | ||
|
|
7e51d61c79 | ||
|
|
47aa7979b2 | ||
|
|
da05cf9192 | ||
|
|
970448d43d | ||
|
|
333a0f38e3 | ||
|
|
86df150374 | ||
|
|
235a8472d9 | ||
|
|
183f8742a7 | ||
|
|
e270e8d429 | ||
|
|
7286fd9b06 | ||
|
|
9f2328457e | ||
|
|
f2a9b02b5e | ||
|
|
41c9bed155 | ||
|
|
508a666e76 | ||
|
|
3d6cbdd775 | ||
|
|
4906bdbdcc | ||
|
|
f0b615eda6 | ||
|
|
0a25c3a33d | ||
|
|
bbb8ac113b | ||
|
|
360c2b2a50 | ||
|
|
cfef855d99 | ||
|
|
80503067e9 | ||
|
|
9779604932 | ||
|
|
c6d6e0e97e | ||
|
|
edac0e85c7 | ||
|
|
fd3d02d818 | ||
|
|
25f9bef74c | ||
|
|
4dae4444bc | ||
|
|
49e78d16ba | ||
|
|
cb23e3a930 | ||
|
|
770026d4ee | ||
|
|
7b928476a2 | ||
|
|
a125fcb8fa | ||
|
|
bd819d7d10 | ||
|
|
e5fcc465c9 | ||
|
|
94a29e375f | ||
|
|
ec5ac44cd3 | ||
|
|
ac2626437e | ||
|
|
99b8cfc82b | ||
|
|
6eef1a6ee4 | ||
|
|
4ad989cc38 | ||
|
|
5804213152 | ||
|
|
d599c058c6 | ||
|
|
b7d4294314 | ||
|
|
d280604f1f | ||
|
|
7817e38e5f | ||
|
|
f310dd6047 | ||
|
|
30633c9672 | ||
|
|
16c44812c8 | ||
|
|
1a57ff16cd | ||
|
|
c3451d19db | ||
|
|
bb5dcb7131 | ||
|
|
884d8b7f72 | ||
|
|
57cdbaedd6 | ||
|
|
3861084ea2 | ||
|
|
bb1ab2e929 | ||
|
|
5a6e75a7e1 | ||
|
|
d2be49af42 | ||
|
|
477589b092 | ||
|
|
a6488b3652 | ||
|
|
cde92256a6 | ||
|
|
47f1f0b9a0 | ||
|
|
a3019be7b6 | ||
|
|
373a0f9527 | ||
|
|
a9bd84c69c | ||
|
|
0c6bfdbd0d | ||
|
|
cdf3a849e9 | ||
|
|
4e32fb21fe | ||
|
|
ae40715526 | ||
|
|
7488525641 | ||
|
|
fd00298930 | ||
|
|
f3f2f29b23 | ||
|
|
d35133b3bc | ||
|
|
541718fd11 | ||
|
|
777aeea138 | ||
|
|
c3ab6e6c29 | ||
|
|
c7e373ed55 | ||
|
|
71f8e9eb31 | ||
|
|
899f3af5e4 | ||
|
|
4ff8de0ca8 | ||
|
|
d6d3d1fee4 | ||
|
|
9a1225fe21 | ||
|
|
5d6439030d | ||
|
|
f871d83e68 | ||
|
|
47471f09f4 | ||
|
|
ee07a59950 | ||
|
|
e8555a84ac | ||
|
|
73bf75f65f | ||
|
|
01bc2ebde4 | ||
|
|
b16a27c249 | ||
|
|
791cc4b4f8 | ||
|
|
71276161fc | ||
|
|
a4c17e5325 | ||
|
|
6308e6491a | ||
|
|
f7474362ff | ||
|
|
1b44bdcd3c | ||
|
|
c8fe671f9c | ||
|
|
2197d77ffc | ||
|
|
d9ff5b00b7 | ||
|
|
5d341e175d | ||
|
|
f6cbae602d | ||
|
|
e3a7781392 | ||
|
|
cf01959e16 | ||
|
|
10abd09239 | ||
|
|
3136cadf59 | ||
|
|
09ff8d5865 | ||
|
|
43e1d452c7 | ||
|
|
ed8215de81 | ||
|
|
69b102bfe3 | ||
|
|
8b342ee18b | ||
|
|
e8ae6d67b1 | ||
|
|
9148b7da5f | ||
|
|
ce812ed8ba | ||
|
|
030df09f67 | ||
|
|
794e2cb872 | ||
|
|
0d493a3af9 | ||
|
|
3787551878 | ||
|
|
7c0dacc627 | ||
|
|
8af9b7fd15 | ||
|
|
3e008f6752 | ||
|
|
8fdcff9f20 | ||
|
|
7947222ac5 | ||
|
|
f4b5daabdb | ||
|
|
b55a7ff5c0 | ||
|
|
ca3337232b | ||
|
|
7d98b85ae7 | ||
|
|
c5bf84cf9c | ||
|
|
fd0acf4e00 | ||
|
|
95a6c41b6e | ||
|
|
06325470ce | ||
|
|
cb28e7c1f9 | ||
|
|
92aeafc261 | ||
|
|
0abe56171a | ||
|
|
9064c02fa8 | ||
|
|
f5966af781 | ||
|
|
2d104d3783 | ||
|
|
5d1cfb50a9 | ||
|
|
a3244de587 | ||
|
|
0945b19364 | ||
|
|
06b1045e09 | ||
|
|
0396494d57 | ||
|
|
971bcb8213 | ||
|
|
4bf3632b40 | ||
|
|
469f41b955 | ||
|
|
80a96aa83c | ||
|
|
0e5d71e1a5 | ||
|
|
9d3b764fec | ||
|
|
16f277761e | ||
|
|
9170020141 | ||
|
|
1ef5e5eb52 | ||
|
|
11dbb82bf1 | ||
|
|
2bcbbb0601 | ||
|
|
ab00ce7455 | ||
|
|
b54a271a75 | ||
|
|
23544fae8a | ||
|
|
0a72f6b32e | ||
|
|
b8d938a020 | ||
|
|
2c7fcbed60 | ||
|
|
69d0242574 | ||
|
|
8e9e3847b6 | ||
|
|
66bc5e9f5b | ||
|
|
8d44a145f0 | ||
|
|
8e1970c398 | ||
|
|
38ec5647dd | ||
|
|
ff2cb6935d |
22
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,17 +1,21 @@
|
||||
<!-- This is a bug report template. By following the instructions below and filling out the sections with your information, you will help the developers to get all the necessary data to fix your issue.
|
||||
<!-- This is a bug report template. By following the instructions below and filling out the sections with your information, you will help the developers 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.
|
||||
|
||||
Before we begin, please note that this tracker is only for issues, not questions or comments.
|
||||
Before we begin, please note that this tracker is only for issues. It is not for questions, comments, or feature requests.
|
||||
|
||||
If you are looking for support, please see our support center instead:
|
||||
http://support.whispersystems.org/
|
||||
or email support@whispersystems.org
|
||||
If you would like to discuss a new feature or submit suggestions, please visit the community forum:
|
||||
https://community.signalusers.org
|
||||
|
||||
Let's begin with a checklist: replace the empty checkboxes [ ] below with checked ones [x] accordingly -->
|
||||
If you are looking for support, please visit our support center:
|
||||
https://support.signal.org/
|
||||
or email support@signal.org
|
||||
|
||||
I have:
|
||||
- [ ] searched open and closed issues for duplicates
|
||||
- [ ] read https://github.com/WhisperSystems/Signal-Android/wiki/Submitting-useful-bug-reports
|
||||
Let's begin with a checklist: Replace the empty checkboxes [ ] below with checked ones [x] accordingly. -->
|
||||
|
||||
- [ ] I have searched open and closed issues for duplicates
|
||||
- [ ] I am submitting a bug report for existing functionality that does not work as intended
|
||||
- [ ] I have read https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports
|
||||
- [ ] This isn't a feature request or a discussion topic
|
||||
|
||||
----------------------------------------
|
||||
|
||||
|
||||
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,19 +1,18 @@
|
||||
<!-- You can remove this first section if you have contributed before -->
|
||||
### First time contributor checklist
|
||||
<!-- replace the empty checkboxes [ ] below with checked ones [x] accordingly -->
|
||||
- [ ] I have read [how to contribute](https://github.com/WhisperSystems/Signal-Android/blob/master/CONTRIBUTING.md) to this project
|
||||
- [ ] I have signed the [Contributor Licence Agreement](https://whispersystems.org/cla/)
|
||||
- [ ] I have read [how to contribute](https://github.com/signalapp/Signal-Android/blob/master/CONTRIBUTING.md) to this project
|
||||
- [ ] I have signed the [Contributor License Agreement](https://whispersystems.org/cla/)
|
||||
|
||||
### Contributor checklist
|
||||
<!-- replace the empty checkboxes [ ] below with checked ones [x] accordingly -->
|
||||
- [ ] I am following the [Code Style Guidelines](https://github.com/WhisperSystems/Signal-Android/wiki/Code-Style-Guidelines)
|
||||
- [ ] I am following the [Code Style Guidelines](https://github.com/signalapp/Signal-Android/wiki/Code-Style-Guidelines)
|
||||
- [ ] I have tested my contribution on these devices:
|
||||
* Device A, Android X.Y.Z
|
||||
* Device B, Android Z.Y
|
||||
* Virtual device W, Android Y.Y.Z
|
||||
- [ ] My contribution is fully baked and ready to be merged as is
|
||||
- [ ] I ensure that all the open issues my contribution fixes are mentioned in the commit message of my first commit using the `Fixes #1234` [syntax](https://help.github.com/articles/closing-issues-via-commit-messages/)
|
||||
- [ ] I have made the choice whether I want the [BitHub reward](https://github.com/WhisperSystems/Signal-Android/wiki/BitHub-Rewards) or not by omitting or adding the word `FREEBIE` in the commit message of my first commit
|
||||
|
||||
----------
|
||||
|
||||
|
||||
3
.gitignore
vendored
@@ -8,7 +8,6 @@ gen/
|
||||
*.iml
|
||||
out
|
||||
tests
|
||||
lint.xml
|
||||
local.properties
|
||||
ant.properties
|
||||
.DS_Store
|
||||
@@ -23,3 +22,5 @@ ffpr
|
||||
test/androidTestEspresso/res/values/arrays.xml
|
||||
obj/
|
||||
jni/libspeex/.deps/
|
||||
*.sh
|
||||
pkcs11.password
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,tr_TR:tr,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE,bg_BG:bg,el_GR:el,kn_IN:kn-rIN,cs_CZ:cs,sr:sr,he:iw,id:in
|
||||
|
||||
lang_map = da_DK:da-rDK,he:iw,id:in,kn_IN:kn-rIN,pt_BR:pt-rBR,pt_PT:pt,qu_EC:qu-rEC,sv_SE:sv-rSE,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW
|
||||
|
||||
[signal-android.master]
|
||||
file_filter = res/values-<lang>/strings.xml
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.thoughtcrime.securesms"
|
||||
android:versionCode="206"
|
||||
android:versionName="3.20.3">
|
||||
package="org.thoughtcrime.securesms">
|
||||
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat"/>
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat,android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,com.takisoft.colorpicker,android.support.v14.preference"/>
|
||||
|
||||
<permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"
|
||||
android:label="Access to TextSecure Secrets"
|
||||
@@ -21,6 +19,7 @@
|
||||
<uses-feature android:name="android.hardware.portrait" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
|
||||
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
|
||||
<uses-permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"/>
|
||||
<uses-permission android:name="android.permission.READ_PROFILE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_PROFILE"/>
|
||||
@@ -28,27 +27,40 @@
|
||||
tools:ignore="ProtectedPermissions"/>
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
|
||||
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
|
||||
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
|
||||
<uses-permission android:name="android.permission.READ_SMS"/>
|
||||
<uses-permission android:name="android.permission.SEND_SMS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_SMS"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.READ_CALL_STATE"/>
|
||||
|
||||
<!-- For sending/receiving events -->
|
||||
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
|
||||
<uses-permission android:name="android.permission.READ_CALENDAR"/>
|
||||
|
||||
|
||||
<!-- Normal -->
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_CALL_LOG" />
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
|
||||
<!-- For sending location tiles in the future -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
|
||||
<!-- So we can add a TextSecure 'Account' -->
|
||||
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
|
||||
@@ -58,10 +70,7 @@
|
||||
|
||||
<!-- For conversation 'shortcuts' on the desktop -->
|
||||
<uses-permission android:name="android.permission.INSTALL_SHORTCUT"/>
|
||||
|
||||
<!-- For sending/receiving events -->
|
||||
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
|
||||
<uses-permission android:name="android.permission.READ_CALENDAR"/>
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
|
||||
|
||||
<!-- For fixing MMS -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
@@ -70,32 +79,22 @@
|
||||
<!-- Set image as wallpaper -->
|
||||
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
||||
|
||||
<!-- Permissions from RedPhone -->
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
|
||||
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
|
||||
|
||||
<uses-permission android:name="android.permission.CALL_PHONE" />
|
||||
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
|
||||
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
|
||||
<uses-permission android:name="android.permission.READ_CALL_STATE"/>
|
||||
<uses-permission android:name="android.permission.READ_LOGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
|
||||
|
||||
<permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE"
|
||||
android:protectionLevel="signature" />
|
||||
<uses-permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||
|
||||
<application android:name=".ApplicationContext"
|
||||
android:icon="@drawable/icon"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
tools:replace="android:allowBackup"
|
||||
android:allowBackup="false"
|
||||
android:theme="@style/TextSecure.LightTheme">
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:largeHeap="true">
|
||||
|
||||
<meta-data
|
||||
android:name="com.google.android.geo.API_KEY"
|
||||
@@ -104,22 +103,22 @@
|
||||
<meta-data android:name="com.google.android.gms.version"
|
||||
android:value="@integer/google_play_services_version" />
|
||||
|
||||
<meta-data android:name="org.thoughtcrime.securesms.mms.TextSecureGlideModule"
|
||||
android:value="GlideModule" />
|
||||
<meta-data android:name="com.google.android.gms.car.application"
|
||||
android:resource="@xml/automotive_app_desc" />
|
||||
|
||||
<activity android:name="org.thoughtcrime.redphone.RedPhone"
|
||||
<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
|
||||
<meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" />
|
||||
<meta-data android:name="firebase_messaging_auto_init_enabled" android:value="false" />
|
||||
|
||||
<activity android:name="org.thoughtcrime.securesms.WebRtcCallActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:screenOrientation="portrait"
|
||||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|fontScale"
|
||||
android:launchMode="singleTask">
|
||||
</activity>
|
||||
android:launchMode="singleTask"/>
|
||||
|
||||
<activity android:name=".CountrySelectionActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ImportExportActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".InviteActivity"
|
||||
android:theme="@style/TextSecure.HighlightTheme"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
@@ -149,8 +148,10 @@
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ShareActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:excludeFromRecents="true"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity=""
|
||||
android:noHistory="true"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
@@ -162,15 +163,23 @@
|
||||
<data android:mimeType="image/*" />
|
||||
<data android:mimeType="text/plain" />
|
||||
<data android:mimeType="video/*" />
|
||||
<data android:mimeType="application/*"/>
|
||||
<data android:mimeType="text/*"/>
|
||||
<data android:mimeType="*/*"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.service.chooser.chooser_target_service"
|
||||
android:value=".service.DirectShareService" />
|
||||
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationListActivity"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:exported="true" />
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:exported="true" />
|
||||
|
||||
<activity-alias android:name=".RoutingActivity"
|
||||
android:targetActivity=".ConversationListActivity"
|
||||
@@ -183,9 +192,9 @@
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
|
||||
android:resource="@drawable/icon" />
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
|
||||
android:resource="@drawable/icon" />
|
||||
android:resource="@mipmap/ic_launcher" />
|
||||
|
||||
</activity-alias>
|
||||
|
||||
@@ -199,7 +208,7 @@
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationActivity"
|
||||
<activity android:name=".conversation.ConversationActivity"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
@@ -209,7 +218,9 @@
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationPopupActivity"
|
||||
<activity android:name=".longmessage.LongMessageActivity" />
|
||||
|
||||
<activity android:name=".conversation.ConversationPopupActivity"
|
||||
android:windowSoftInputMode="stateVisible"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity=""
|
||||
@@ -245,15 +256,13 @@
|
||||
<activity android:name=".PassphraseCreateActivity"
|
||||
android:label="@string/AndroidManifest__create_passphrase"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:theme="@style/TextSecure.LightIntroTheme"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".PassphrasePromptActivity"
|
||||
android:label="@string/AndroidManifest__enter_passphrase"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightIntroTheme"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".NewConversationActivity"
|
||||
@@ -266,6 +275,16 @@
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".giph.ui.GiphyActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".mediasend.MediaSendActivity"
|
||||
android:theme="@style/TextSecure.DarkNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".PassphraseChangeActivity"
|
||||
android:label="@string/AndroidManifest__change_passphrase"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
@@ -274,13 +293,29 @@
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ApplicationPreferencesActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".RegistrationActivity"
|
||||
<activity android:name=".registration.WelcomeActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".RegistrationProgressActivity"
|
||||
<activity android:name=".RegistrationActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".registration.CaptchaActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".DeviceActivity"
|
||||
@@ -299,7 +334,9 @@
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".MediaOverviewActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".DummyActivity"
|
||||
@@ -335,7 +372,7 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.thoughtcrime.redphone.RedPhoneShare"
|
||||
<activity android:name="org.thoughtcrime.securesms.webrtc.VoiceCallShare"
|
||||
android:excludeFromRecents="true"
|
||||
android:theme="@style/NoAnimation.Theme.BlackScreen"
|
||||
android:launchMode="singleTask"
|
||||
@@ -357,14 +394,51 @@
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
|
||||
<activity android:name=".scribbles.StickerSelectActivity"
|
||||
android:theme="@style/TextSecure.DarkTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<service android:enabled="true" android:name="org.thoughtcrime.redphone.RedPhoneService"/>
|
||||
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
|
||||
android:theme="@style/TextSecure.DarkTheme"/>
|
||||
|
||||
<activity android:name=".CreateProfileActivity"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateVisible"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ClearProfileAvatarActivity"
|
||||
android:theme="@style/Theme.AppCompat.Dialog.Alert"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:icon="@drawable/clear_profile_avatar"
|
||||
android:label="@string/AndroidManifest_remove_photo">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.action.CLEAR_PROFILE_PHOTO"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".contactshare.ContactShareEditActivity"
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".contactshare.ContactNameEditActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".contactshare.SharedContactDetailsActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ShortcutLauncherActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:exported="true"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<service android:enabled="true" android:name="org.thoughtcrime.securesms.service.WebRtcCallService"/>
|
||||
<service android:enabled="true" android:name=".service.ApplicationMigrationService"/>
|
||||
<service android:enabled="true" android:name=".service.KeyCachingService"/>
|
||||
<service android:enabled="true" android:name=".service.RegistrationService"/>
|
||||
<service android:enabled="true" android:name=".service.MessageRetrievalService"/>
|
||||
<service android:enabled="true" android:exported="false" android:name=".service.KeyCachingService"/>
|
||||
<service android:enabled="true" android:name=".service.IncomingMessageObserver$ForegroundService"/>
|
||||
|
||||
<service android:name=".service.QuickResponseService"
|
||||
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
|
||||
@@ -394,12 +468,20 @@
|
||||
<meta-data android:name="android.provider.CONTACTS_STRUCTURE" android:resource="@xml/contactsformat" />
|
||||
</service>
|
||||
|
||||
<receiver android:name=".gcm.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
|
||||
<service android:name=".service.DirectShareService"
|
||||
android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
||||
<category android:name="org.thoughtcrime.securesms" />
|
||||
<action android:name="android.service.chooser.ChooserTargetService" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</service>
|
||||
|
||||
<service android:name=".service.GenericForegroundService"/>
|
||||
|
||||
<service android:name=".gcm.FcmService">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<receiver android:name=".service.SmsListener"
|
||||
android:permission="android.permission.BROADCAST_SMS"
|
||||
@@ -436,13 +518,13 @@
|
||||
|
||||
<receiver android:name=".notifications.MarkReadReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.notifications.CLEAR"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.WearReplyReceiver"
|
||||
<receiver android:name=".notifications.RemoteReplyReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
@@ -450,6 +532,22 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.AndroidAutoHeardReceiver"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.notifications.ANDROID_AUTO_HEARD"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.AndroidAutoReplyReceiver"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.notifications.ANDROID_AUTO_REPLY"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.ExpirationListener" />
|
||||
|
||||
<provider android:name=".providers.PartProvider"
|
||||
android:grantUriPermissions="true"
|
||||
android:exported="false"
|
||||
@@ -460,37 +558,91 @@
|
||||
android:exported="false"
|
||||
android:authorities="org.thoughtcrime.provider.securesms.mms" />
|
||||
|
||||
<receiver android:name=".service.RegistrationNotifier"
|
||||
android:exported="false">
|
||||
<provider android:name="android.support.v4.content.FileProvider"
|
||||
android:authorities="org.thoughtcrime.securesms.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
|
||||
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_provider_paths" />
|
||||
|
||||
</provider>
|
||||
|
||||
<provider android:name=".database.DatabaseContentProviders$Conversation"
|
||||
android:authorities="org.thoughtcrime.securesms.database.conversation"
|
||||
android:exported="false" />
|
||||
|
||||
<provider android:name=".database.DatabaseContentProviders$ConversationList"
|
||||
android:authorities="org.thoughtcrime.securesms.database.conversationlist"
|
||||
android:exported="false" />
|
||||
|
||||
<provider android:name=".database.DatabaseContentProviders$Attachment"
|
||||
android:authorities="org.thoughtcrime.securesms.database.attachment"
|
||||
android:exported="false" />
|
||||
|
||||
<receiver android:name=".service.BootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.REGISTRATION_EVENT" />
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||
<action android:name="org.thoughtcrime.securesms.RESTART"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.DirectoryRefreshListener">
|
||||
<intent-filter>
|
||||
<action android:name="org.whispersystems.whisperpush.DIRECTORY_REFRESH"/>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.RotateSignedPreKeyListener">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.RotateSenderCertificateListener">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.LocalBackupListener">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".service.PersistentConnectionBootListener">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.LocaleChangedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.LOCALE_CHANGED"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.MessageNotifier$ReminderReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.MessageNotifier.REMINDER_ACTION"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".notifications.MessageNotifier$DeleteReceiver">
|
||||
<receiver android:name=".notifications.DeleteNotificationReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.MessageNotifier.DELETE_REMINDER_ACTION"/>
|
||||
<action android:name="org.thoughtcrime.securesms.DELETE_NOTIFICATION"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name=".ExperienceUpgradeActivity$AppUpgradeReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="org.thoughtcrime.securesms.ExperienceUpgradeActivity.DISMISS_ACTION"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
@@ -501,6 +653,29 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<service
|
||||
android:name=".jobmanager.JobSchedulerScheduler$SystemService"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"
|
||||
android:enabled="@bool/enable_job_service"
|
||||
tools:targetApi="26" />
|
||||
|
||||
<service
|
||||
android:name=".jobmanager.KeepAliveService"
|
||||
android:enabled="@bool/enable_alarm_manager" />
|
||||
|
||||
<receiver
|
||||
android:name=".jobmanager.AlarmManagerScheduler$RetryReceiver"
|
||||
android:enabled="@bool/enable_alarm_manager" />
|
||||
|
||||
<!-- Probably don't need this one -->
|
||||
<receiver
|
||||
android:name=".jobmanager.BootReceiver"
|
||||
android:enabled="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<uses-library android:name="com.sec.android.app.multiwindow" android:required="false"/>
|
||||
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
|
||||
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:value="632.0dip" />
|
||||
|
||||
14
BUILDING.md
@@ -15,26 +15,28 @@ The following steps should help you (re)build Signal from the command line.
|
||||
|
||||
1. Checkout the Signal-Android project source with the command:
|
||||
|
||||
git clone https://github.com/WhisperSystems/Signal-Android.git
|
||||
git clone https://github.com/signalapp/Signal-Android.git
|
||||
|
||||
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed.
|
||||
3. Ensure that the following packages are installed from the Android SDK manager:
|
||||
* Android SDK Build Tools
|
||||
* SDK Platform (API level 22)
|
||||
* Android SDK Build Tools (see buildToolsVersion in build.gradle)
|
||||
* SDK Platform (All API levels)
|
||||
* Android Support Repository
|
||||
* Google Repository
|
||||
4. Create a local.properties file at the root of your source checkout and add an sdk.dir entry to it. For example:
|
||||
|
||||
sdk.dir=/Application/android-sdk-macosx
|
||||
|
||||
5. Execute Gradle:
|
||||
5. Using Java 8
|
||||
|
||||
6. Execute Gradle:
|
||||
|
||||
./gradlew build
|
||||
|
||||
Visual assets
|
||||
----------------------
|
||||
|
||||
Source assets tend to be large binary blobs, which are best stored outside of git repositories. We host ours in a [Pixelapse repository](https://www.pixelapse.com/openwhispersystems/projects/signal-android/). Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils).
|
||||
Source assets tend to be large binary blobs, which are best stored outside of git repositories. Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils).
|
||||
|
||||
Sample command for generating our audio placeholder image:
|
||||
|
||||
@@ -53,7 +55,7 @@ Setting up a development environment
|
||||
3. From the Quickstart panel, choose "Configure" then "SDK Manager".
|
||||
4. In the SDK Tools tab of the SDK Manager, make sure that the "Android Support Repository" is installed, and that the latest "Android SDK build-tools" are installed. Click "OK" to return to the Quickstart panel.
|
||||
5. From the Quickstart panel, choose "Checkout from Version Control" then "git".
|
||||
6. Paste the URL for the Signal-Android project when prompted (https://github.com/WhisperSystems/Signal-Android.git).
|
||||
6. Paste the URL for the Signal-Android project when prompted (https://github.com/signalapp/Signal-Android.git).
|
||||
7. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
|
||||
9. Default config options should be good enough.
|
||||
9. Project initialisation and build should proceed.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Contributing to Signal Android
|
||||
|
||||
Thank you for deciding to help this project! If you have contributed to other open source projects before please note that some conventions here might be a bit different than what you have been used to. Reading this document will save you, other contributors and the developers time.
|
||||
Thank you for supporting Signal and looking for ways to help. Please note that some conventions here might be a bit different than what you are used to, even if you have contributed to other open source projects before. Reading this document will help you save time and work effectively with the developers and other contributors.
|
||||
|
||||
|
||||
## Development Ideology
|
||||
@@ -9,80 +9,81 @@ Truths which we believe to be self-evident:
|
||||
|
||||
1. **The answer is not more options.** If you feel compelled to add a preference that's exposed to the user, it's very possible you've made a wrong turn somewhere.
|
||||
1. **The user doesn't know what a key is.** We need to minimize the points at which a user is exposed to this sort of terminology as extremely as possible.
|
||||
1. **There are no power users.** The idea that some users "understand" concepts better than others has proven to be, for the most part, false. If anything, "power users" are more dangerous than the rest, and we should avoid exposing dangerous functionality to them.
|
||||
1. **There are no power users.** The idea that some users "understand" concepts better than others has proven to be, for the most part, false. If anything, "power users" are more dangerous than the rest, and we should avoid exposing dangerous functionality to them.
|
||||
1. **If it's "like PGP," it's wrong.** PGP is our guide for what not to do.
|
||||
1. **It's an asynchronous world.** Be wary of anything that is anti-asynchronous: ACKs, protocol confirmations, or any protocol-level "advisory" message.
|
||||
1. **There is no such thing as time.** Protocol ideas that require synchronized clocks are doomed to failure.
|
||||
1. **There is no such thing as time.** Protocol ideas that require synchronized clocks are doomed to failure.
|
||||
|
||||
|
||||
## Translations
|
||||
|
||||
Please do not submit issues or pull requests for translation fixes. Anyone can update the translations in [Transifex](https://www.transifex.com/projects/p/signal-android/). Please submit your corrections there.
|
||||
Thanks to a dedicated community of volunteer translators, Signal is now available in more than one hundred languages. We use Transifex to manage our translation efforts, not GitHub. Any suggestions, corrections, or new translations should be submitted to the [Signal localization project for Android](https://www.transifex.com/signalapp/signal-android/).
|
||||
|
||||
|
||||
## Issues
|
||||
|
||||
### Useful bug reports
|
||||
1. Please search both open and closed issues first to make sure your issue is not a duplicate.
|
||||
1. Read the [Submitting useful bug reports guide](https://github.com/WhisperSystems/Signal-Android/wiki/Submitting-useful-bug-reports) before posting a bug.
|
||||
1. Please search both open and closed issues to make sure your bug report is not a duplicate.
|
||||
1. Read the [guide to submitting useful bug reports](https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports) before posting a bug.
|
||||
|
||||
### Issue tracker is for bugs
|
||||
The main purpose of this issue tracker is to track bugs for the Android client. Relevant, concise and to the point comments that help to solve the issue are very welcome.
|
||||
### The issue tracker is for bugs, not feature requests
|
||||
The GitHub issue tracker is not used for feature requests, but new ideas can be submitted and discussed on the [community forum](https://community.signalusers.org/c/feature-requests). The purpose of this issue tracker is to track bugs in the Android client. Bug reports should only be submitted for existing functionality that does not work as intended. Comments that are relevant and concise will help the developers solve issues more quickly.
|
||||
|
||||
##### Send support questions to support
|
||||
Please do **not** ask support questions at the issue tracker. We want to help you using Signal and we have created our support system just for that. You can reach support by sending email to support@whispersystems.org or by going to our [Support Center](http://support.whispersystems.org). You can also search for existing troubleshooting articles at the [Support Center](http://support.whispersystems.org).
|
||||
### Send support questions to support
|
||||
You can reach support by sending an email to support@signal.org or by visiting the [Signal Support Center](https://support.signal.org/) where you can also search for existing troubleshooting articles and find answers to frequently asked questions. Please do not post support questions on the GitHub issue tracker.
|
||||
|
||||
##### Not a discussion forum
|
||||
Please do **not** use this issue tracker as a discussion forum. Discussion related to the bug in question should of course go to the issue itself. However other discussion should take place at the [community forum](https://whispersystems.discoursehosting.net). You can use that forum to discuss any Signal related topics or to just hang out with your fellow users.
|
||||
### GitHub is not a generic discussion forum
|
||||
Conversations about open bug reports belong here. However, all other discussions should take place on the [community forum](https://community.signalusers.org). You can use the community forum to discuss anything that is related to Signal or to hang out with your fellow users in the "Off Topic" category.
|
||||
|
||||
### Don't bump issues
|
||||
Every time someone comments on an issue, GitHub sends email to [everyone who is watching](https://github.com/WhisperSystems/Signal-Android/watchers) the repository (currently around 500 people). Thus bumping issues with :+1:s, _me toos_ or asking for updates just generate unnecessary email notifications. Moreover bumping an issue does not help solving it. Please be respectful to everyone's time and try to only comment when you have relevant new information to add.
|
||||
Every time someone comments on an issue, GitHub sends an email to [hundreds of people](https://github.com/signalapp/Signal-Android/watchers). Bumping issues with a "+1" (or asking for updates) generates a lot of unnecessary email notifications and does not help anyone solve the issue any faster. Please be respectful of everyone's time and only comment when you have new information to add.
|
||||
|
||||
### Open issues
|
||||
|
||||
#### If it's open it's tracked
|
||||
Have you followed all the points in the [Submitting useful bug reports guide](https://github.com/WhisperSystems/Signal-Android/wiki/Submitting-useful-bug-reports) but nobody has commented on your issue? Is there no milestone or person assigned to it? Don't worry, the developers read every issue and if it's open it means it's tracked and taken into account. It might just take time as other issues have higher priorities. And remember that this is an open source project: Anyone is encouraged to take an active role in fixing open issues.
|
||||
#### If it's open, it's tracked
|
||||
The developers read every issue, but high-priority bugs or features can take precedence over others. Signal is an open source project, and everyone is encouraged to play an active role in diagnosing and fixing open issues.
|
||||
|
||||
### Closed issues
|
||||
|
||||
#### "My issue was closed without giving a reason!"
|
||||
Please understand that writing detailed explanations every time for every issue someone comes up with takes time. Sometimes a reason has been posted earlier to another related issue which you can search for. It's also possible that your issue was not in line with the guidelines of the project (see especially the [Development Ideology](https://github.com/WhisperSystems/Signal-Android/blob/master/CONTRIBUTING.md#development-ideology)). Or it was just simply decided that the issue is not something that Signal should do at this time.
|
||||
Although we do our best, writing detailed explanations for every issue can be time consuming, and the topic also might have been covered previously in other related issues.
|
||||
|
||||
|
||||
## Pull requests
|
||||
|
||||
### Sign the Contributor Licence Agreement (CLA)
|
||||
You need to sign our CLA before your pull request can be merged. You can sign it at: https://whispersystems.org/cla/
|
||||
### Smaller is better
|
||||
Big changes are significantly less likely to be accepted. Large features often require protocol modifications and necessitate a staged rollout process that is coordinated across millions of users on multiple platforms (Android, iOS, and Desktop).
|
||||
|
||||
Try not to take on too much at once. As a first-time contributor, we recommend starting with small and simple PRs in order to become familiar with the codebase. Most of the work should go into discovering which three lines need to change rather than writing the code.
|
||||
|
||||
### Sign the Contributor License Agreement (CLA)
|
||||
You will need to [sign our CLA](https://signal.org/cla/) before your pull request can be merged.
|
||||
|
||||
### Follow the Code Style Guidelines
|
||||
Before submitting a pull request please check that your code adheres to the [Code style Guidelines](https://github.com/WhisperSystems/Signal-Android/wiki/Code-Style-Guidelines).
|
||||
Ensure that your code adheres to the [Code Style Guidelines](https://github.com/signalapp/Signal-Android/wiki/Code-Style-Guidelines) before submitting a pull request.
|
||||
|
||||
### Submit only complete PRs and test them
|
||||
Please do not submit pull requests that are still a work in progress. Pull requests should be ready for a merge when you submit them. Also please do not submit pull requests that you have not tested.
|
||||
|
||||
### Smaller is better
|
||||
Please do not try to change too much at once. Big changes are less likely to be merged. If you are a first time contributor start with small and simple PRs to get to know the codebase.
|
||||
### Submit finished and well-tested pull requests
|
||||
Please do not submit pull requests that are still a work in progress. Pull requests should be thoroughly tested and ready to merge before they are submitted.
|
||||
|
||||
### Merging can sometimes take a while
|
||||
If your pull request follows all the advice above but still has not been merged it usually means the developers haven't simply had the time to review it yet. We understand that this might feel frustrating. We are sorry!
|
||||
|
||||
### Bithub
|
||||
Accepted pull requests will be rewarded with Bitcoins! After your pull request has been merged you will automatically receive an email to the address you have specified as your Git commit email. Follow the instructions in the email to claim your coins. If you wish to submit your contribution for free please add the word `FREEBIE` in your Git commit message. You may wish to explore some previously merged commits to see how it all works.
|
||||
If your pull request follows all of the advice above but still has not been merged, this usually means that the developers haven't had time to review it yet. We understand that this might feel frustrating, and we apologize. The Signal team is still small, but [we are hiring](https://signal.org/workworkwork/).
|
||||
|
||||
|
||||
## How can I contribute?
|
||||
Any one can help by
|
||||
- advising new people about the guidelines of this project
|
||||
- redirecting support questions to support@whispersystems.org and the [support site](http://support.whispersystems.org)
|
||||
- redirecting non-bug related discussions to the [community forum](https://whispersystems.discoursehosting.net)
|
||||
- improving documentation at the [wiki](https://github.com/WhisperSystems/Signal-Android/wiki)
|
||||
- [translating](https://www.transifex.com/projects/p/signal-android/)
|
||||
- finding and marking duplicate issues
|
||||
- trying to reproduce issues
|
||||
- finding solutions to open issues and posting relevant findings as comments
|
||||
- submitting pull requests
|
||||
- testing other people's pull requests
|
||||
- spreading the joy of Signal to your friends and family
|
||||
- donating money to our [BitHub](https://www.coinbase.com/checkouts/51dac699e660a4d773216b5ad94d6a0b) or through the [Freedom of the Press Foundation's donation page](https://freedom.press/bundle/encryption-tools-journalists)
|
||||
There are several other ways to get involved:
|
||||
* Help new users learn about Signal.
|
||||
* Redirect support questions to support@signal.org and the [Signal Support Center](https://support.signal.org/).
|
||||
* Redirect non-bug discussions to the [community forum](https://community.signalusers.org).
|
||||
* Improve documentation in the [wiki](https://github.com/signalapp/Signal-Android/wiki).
|
||||
* Join the community of volunteer translators on Transifex:
|
||||
* [Android](https://www.transifex.com/signalapp/signal-android/)
|
||||
* [iOS](https://www.transifex.com/signalapp/signal-ios/)
|
||||
* [Desktop](https://www.transifex.com/signalapp/signal-desktop/)
|
||||
* Find and mark duplicate issues.
|
||||
* Try to reproduce issues and help with troubleshooting.
|
||||
* Discover solutions to open issues and post any relevant findings.
|
||||
* Test other people's pull requests.
|
||||
* Contribute to Signal via the [Freedom of the Press Foundation's donation page](https://freedom.press/crowdfunding/signal/).
|
||||
* Share Signal with your friends and family.
|
||||
|
||||
[](https://gitter.im/WhisperSystems/Signal-Android?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
Signal is made for you. Thank you for your feedback and support.
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
FROM ubuntu:14.04.3
|
||||
FROM ubuntu:17.10
|
||||
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update -y && \
|
||||
apt-get install -y software-properties-common && \
|
||||
add-apt-repository -y ppa:openjdk-r/ppa && \
|
||||
apt-get update -y && \
|
||||
apt-get install -y libc6:i386=2.19-0ubuntu6.7 libncurses5:i386=5.9+20140118-1ubuntu1 libstdc++6:i386=4.8.4-2ubuntu1~14.04.1 lib32z1=1:1.2.8.dfsg-1ubuntu1 wget openjdk-8-jdk=8u72-b15-1~trusty1 git unzip && \
|
||||
apt-get install -y libc6:i386=2.26-0ubuntu2.1 libncurses5:i386=6.0+20160625-1ubuntu1 libstdc++6:i386=7.2.0-8ubuntu3.2 lib32z1=1:1.2.11.dfsg-0ubuntu2 wget openjdk-8-jdk=8u171-b11-0ubuntu0.17.10.1 git unzip opensc pcscd && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
apt-get autoremove -y && \
|
||||
apt-get clean
|
||||
|
||||
ENV ANDROID_SDK_FILENAME android-sdk_r24.4.1-linux.tgz
|
||||
ENV ANDROID_SDK_URL https://dl.google.com/android/${ANDROID_SDK_FILENAME}
|
||||
ENV ANDROID_API_LEVELS android-22
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 23.0.2
|
||||
ENV ANDROID_API_LEVELS android-28
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 28.0.3
|
||||
ENV ANDROID_HOME /usr/local/android-sdk-linux
|
||||
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
|
||||
RUN cd /usr/local/ && \
|
||||
|
||||
29
README.md
@@ -6,12 +6,12 @@ Signal uses your phone's data connection (WiFi/3G/4G) to communicate securely, o
|
||||
|
||||
Currently available on the Play store.
|
||||
|
||||
<a href="https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"><img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" height=36px /></a>
|
||||
<a href='https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height='80px'/></a>
|
||||
|
||||
## Contributing Bug reports
|
||||
We use GitHub for bug tracking. Please search the existing issues for your bug and create a new one if the issue is not yet tracked!
|
||||
|
||||
https://github.com/WhisperSystems/Signal-Android/issues
|
||||
https://github.com/signalapp/Signal-Android/issues
|
||||
|
||||
## Joining the Beta
|
||||
Want to live life on the bleeding edge and help out with testing?
|
||||
@@ -27,35 +27,26 @@ Interested in helping to translate Signal? Contribute here:
|
||||
https://www.transifex.com/projects/p/signal-android/
|
||||
|
||||
## Contributing Code
|
||||
Instructions on how to setup your development environment and build Signal can be found in [BUILDING.md](https://github.com/WhisperSystems/Signal-Android/blob/master/BUILDING.md).
|
||||
Instructions on how to setup your development environment and build Signal can be found in [BUILDING.md](https://github.com/signalapp/Signal-Android/blob/master/BUILDING.md).
|
||||
|
||||
If you're new to the Signal codebase, we recommend going through our issues and picking out a simple bug to fix (check the "easy" label in our issues) in order to get yourself familiar. Also please have a look at the [CONTRIBUTING.md](https://github.com/WhisperSystems/Signal-Android/blob/master/CONTRIBUTING.md), that might answer some of your questions.
|
||||
If you're new to the Signal codebase, we recommend going through our issues and picking out a simple bug to fix (check the "easy" label in our issues) in order to get yourself familiar. Also please have a look at the [CONTRIBUTING.md](https://github.com/signalapp/Signal-Android/blob/master/CONTRIBUTING.md), that might answer some of your questions.
|
||||
|
||||
For larger changes and feature ideas, we ask that you propose it on the [unofficial Community Forum](https://whispersystems.discoursehosting.net) for a high-level discussion with the wider community before implementation.
|
||||
|
||||
This repository is set up with [BitHub](https://whispersystems.org/blog/bithub/), so you can make money for committing to Signal. The current BitHub price for an accepted pull request is:
|
||||
|
||||
[](https://whispersystems.org/blog/bithub/)
|
||||
For larger changes and feature ideas, we ask that you propose it on the [unofficial Community Forum](https://community.signalusers.org) for a high-level discussion with the wider community before implementation.
|
||||
|
||||
## Contributing Ideas
|
||||
Have something you want to say about Open Whisper Systems projects or want to be part of the conversation? Get involved in the [community forum](https://whispersystems.discoursehosting.net).
|
||||
|
||||
## Contributing Funds
|
||||
[](https://www.coinbase.com/checkouts/51dac699e660a4d773216b5ad94d6a0b)
|
||||
|
||||
You can add funds to BitHub to directly help further development efforts.
|
||||
Have something you want to say about Open Whisper Systems projects or want to be part of the conversation? Get involved in the [community forum](https://community.signalusers.org).
|
||||
|
||||
Help
|
||||
====
|
||||
## Support
|
||||
For troubleshooting and questions, please visit our support center!
|
||||
|
||||
http://support.whispersystems.org/
|
||||
https://support.signal.org/
|
||||
|
||||
## Documentation
|
||||
Looking for documentation? Check out the wiki!
|
||||
|
||||
https://github.com/WhisperSystems/Signal-Android/wiki
|
||||
https://github.com/signalapp/Signal-Android/wiki
|
||||
|
||||
# Legal things
|
||||
## Cryptography Notice
|
||||
@@ -71,6 +62,8 @@ The form and manner of this distribution makes it eligible for export under the
|
||||
|
||||
Copyright 2011 Whisper Systems
|
||||
|
||||
Copyright 2013-2016 Open Whisper Systems
|
||||
Copyright 2013-2017 Open Whisper Systems
|
||||
|
||||
Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Google Play and the Google Play logo are trademarks of Google Inc.
|
||||
|
||||
287
ReproducibleBuilds.md
Normal file
@@ -0,0 +1,287 @@
|
||||
# Reproducible Builds
|
||||
|
||||
|
||||
## TL;DR
|
||||
|
||||
You can just use these [instructions](https://signal.org/blog/reproducible-android/) from the official announcement at Open Whisper Systems's blog:
|
||||
```
|
||||
# Clone the Signal Android source repository
|
||||
$ git clone https://github.com/signalapp/Signal-Android.git && cd Signal-Android
|
||||
|
||||
# Check out the release tag for the version you'd like to compare
|
||||
$ git checkout v[the version number]
|
||||
|
||||
# Build using the Docker environment
|
||||
$ docker run --rm -v $(pwd):/project -w /project whispersystems/signal-android:1.3 ./gradlew clean assembleRelease
|
||||
|
||||
# Verify the APKs
|
||||
$ python3 apkdiff/apkdiff.py build/outputs/apks/project-release-unsigned.apk path/to/SignalFromPlay.apk
|
||||
```
|
||||
|
||||
Note that the instructions above use a pre-built Signal Docker image from [Docker Hub](https://hub.docker.com/u/whispersystems/). If you wish to compile the image yourself, continue reading the longer version below.
|
||||
|
||||
|
||||
***
|
||||
|
||||
|
||||
## Introduction
|
||||
|
||||
Since version 3.15.0 Signal for Android has supported reproducible builds. This is achieved by replicating the build environment as a Docker image. You'll need to build the image, run a container instance of it, compile Signal inside the container and finally compare the resulted APK to the APK that is distributed in the Google Play Store.
|
||||
|
||||
The command line parts in this guide are written for Linux but with some little modifications you can adapt them to macOS (OS X) and Windows. In the following sections we will use `3.15.2` as an example Signal version. You'll just need to replace all occurrences of `3.15.2` with the version number you are about to verify.
|
||||
|
||||
|
||||
## Setting up directories
|
||||
|
||||
First let's create a new directory for this whole reproducible builds project. In your home folder (`~`), create a new directory called `reproducible-signal`.
|
||||
```
|
||||
user@host:$ mkdir ~/reproducible-signal
|
||||
```
|
||||
|
||||
Next create another directory inside `reproducible-signal` called `apk-from-google-play-store`.
|
||||
```
|
||||
user@host:$ mkdir ~/reproducible-signal/apk-from-google-play-store
|
||||
```
|
||||
|
||||
We will use this directory to share APKs between the host OS and the Docker container.
|
||||
|
||||
Finally create one more directory inside `reproducible-signal` called `image-build-context`.
|
||||
```
|
||||
user@host:$ mkdir ~/reproducible-signal/image-build-context
|
||||
```
|
||||
|
||||
This directory will be used later to build our Docker image.
|
||||
|
||||
|
||||
## Getting the Google Play Store version of Signal APK
|
||||
|
||||
To compare the APKs we of course need a version of Signal from the Google Play Store.
|
||||
|
||||
First make sure that the Signal version you want to verify is installed on your Android device. You'll need `adb` for this part.
|
||||
|
||||
Plug your device to your computer and run this command to pull the APK from the device:
|
||||
|
||||
```
|
||||
user@host:$ adb pull $(adb shell pm path org.thoughtcrime.securesms | grep /base.apk | awk -F':' '{print $2}') ~/reproducible-signal/apk-from-google-play-store/Signal-$(adb shell dumpsys package org.thoughtcrime.securesms | grep versionName | awk -F'=' '{print $2}').apk
|
||||
```
|
||||
|
||||
This will pull a file into `~/reproducible-signal/apk-from-google-play-store/` with the name `Signal-<version>.apk`
|
||||
|
||||
Alternatively, you can do this step-by-step:
|
||||
|
||||
```
|
||||
user@host:$ adb shell pm path org.thoughtcrime.securesms
|
||||
```
|
||||
This will output something like:
|
||||
```
|
||||
package:/data/app/org.thoughtcrime.securesms-aWRzcGlzcG9wZA==/base.apk
|
||||
```
|
||||
|
||||
The output will tell you where the Signal APK is located in your device. (In this example the path is `/data/app/org.thoughtcrime.securesms-aWRzcGlzcG9wZA==/base.apk`)
|
||||
|
||||
Now using this information, pull the APK from your device to the `reproducible-signal/apk-from-google-play-store` directory you created before:
|
||||
```
|
||||
user@host:$ adb pull \
|
||||
/data/app/org.thoughtcrime.securesms-aWRzcGlzcG9wZA==/base.apk \
|
||||
~/reproducible-signal/apk-from-google-play-store/Signal-3.15.2.apk
|
||||
```
|
||||
|
||||
We will use this APK in the final part when we compare it with the self-built APK from GitHub.
|
||||
|
||||
## Identifying the ABI
|
||||
|
||||
Since v4.37.0, the APKs have been split by ABI, the CPU architecture of the target device. Google play will serve the correct one to you for your device.
|
||||
|
||||
To identify which ABIs the google play APK supports, we can look inside the APK, which is just a zip file:
|
||||
|
||||
```
|
||||
user@host:$ unzip -l ~/reproducible-signal/apk-from-google-play-store/Signal-*.apk | grep lib/
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
1214348 00-00-1980 00:00 lib/armeabi-v7a/libconscrypt_jni.so
|
||||
151980 00-00-1980 00:00 lib/armeabi-v7a/libcurve25519.so
|
||||
4164320 00-00-1980 00:00 lib/armeabi-v7a/libjingle_peerconnection_so.so
|
||||
13948 00-00-1980 00:00 lib/armeabi-v7a/libnative-utils.so
|
||||
2357812 00-00-1980 00:00 lib/armeabi-v7a/libsqlcipher.so
|
||||
```
|
||||
|
||||
As there is just one sub directory of `lib/` called `armeabi-v7a`, that is your ABI. Make a note of that for later. If you see more than one subdirectory of `lib/`:
|
||||
|
||||
```
|
||||
1214348 00-00-1980 00:00 lib/armeabi-v7a/libconscrypt_jni.so
|
||||
151980 00-00-1980 00:00 lib/armeabi-v7a/libcurve25519.so
|
||||
4164320 00-00-1980 00:00 lib/armeabi-v7a/libjingle_peerconnection_so.so
|
||||
13948 00-00-1980 00:00 lib/armeabi-v7a/libnative-utils.so
|
||||
2357812 00-00-1980 00:00 lib/armeabi-v7a/libsqlcipher.so
|
||||
2111376 00-00-1980 00:00 lib/x86/libconscrypt_jni.so
|
||||
201056 00-00-1980 00:00 lib/x86/libcurve25519.so
|
||||
7303888 00-00-1980 00:00 lib/x86/libjingle_peerconnection_so.so
|
||||
5596 00-00-1980 00:00 lib/x86/libnative-utils.so
|
||||
3977636 00-00-1980 00:00 lib/x86/libsqlcipher.so
|
||||
```
|
||||
|
||||
Then that means you have the `universal` APK.
|
||||
|
||||
## Installing Docker
|
||||
|
||||
Install Docker by following the instructions for your platform at https://docs.docker.com/engine/installation/
|
||||
|
||||
Your platform might also have its own preferred way of installing Docker. E.g. Ubuntu has its own Docker package (`docker.io`) if you do not want to follow Docker's instructions.
|
||||
|
||||
In the following sections we will assume that your Docker installation works without issues. So after installing, please make sure that everything is running smoothly before continuing.
|
||||
|
||||
|
||||
## Building a Docker image for Signal
|
||||
|
||||
#### Grabbing the `Dockerfile`
|
||||
|
||||
First you will need the `Dockerfile` for Signal Android. It comes bundled with Signal's source code. The `Dockerfile` contains instructions on how to automatically build a Docker image for Signal. You just need to run it and it builds itself.
|
||||
|
||||
Download the `Dockerfile` to the `image-build-context` directory.
|
||||
|
||||
```
|
||||
user@host:$ wget -O ~/reproducible-signal/image-build-context/Dockerfile_v3.15.2 \
|
||||
https://raw.githubusercontent.com/signalapp/Signal-Android/v3.15.2/Dockerfile
|
||||
```
|
||||
|
||||
Note that the `Dockerfile` is specific to the Signal version you want to compare to. Again you have to adjust the URL above to match the right version. (Though sometimes the file might not be up to date, see the [Troubleshooting section](#troubleshooting))
|
||||
|
||||
|
||||
#### Building the image
|
||||
|
||||
Now we have everything we need to build the Docker image for Signal. Go to the `image-build-context` directory:
|
||||
|
||||
```
|
||||
user@host:$ cd ~/reproducible-signal/image-build-context
|
||||
```
|
||||
|
||||
And list the contents.
|
||||
```
|
||||
user@host:$ ls
|
||||
```
|
||||
The output should look like this:
|
||||
```
|
||||
Dockerfile_v3.15.2
|
||||
```
|
||||
|
||||
Now in this directory build the image using `Dockerfile_v3.15.2`:
|
||||
```
|
||||
user@host:$ docker build --file Dockerfile_v3.15.2 --tag signal-android .
|
||||
```
|
||||
|
||||
(Note that there is a dot at the end of that command!)
|
||||
|
||||
Wait a few years for the build to finish... :construction_worker:
|
||||
|
||||
(Depending on your computer and network connection, this may take several minutes.)
|
||||
|
||||
:calendar: :sleeping:
|
||||
|
||||
After the build has finished, you may wish to list all your Docker images to see that it's really there:
|
||||
```
|
||||
user@host:$ docker images
|
||||
```
|
||||
Output should look something like this:
|
||||
```
|
||||
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
||||
signal-android latest c6b84450b896 46 seconds ago 2.94 GB
|
||||
ubuntu 14.04.3 8693db7e8a00 9 weeks ago 187.9 MB
|
||||
```
|
||||
|
||||
|
||||
## Compiling Signal inside a container
|
||||
|
||||
Next we will run a container of the image we just built, grab Signal's source code and compile Signal.
|
||||
|
||||
First go to the `reproducible-signal` directory:
|
||||
|
||||
```
|
||||
user@host:$ cd ~/reproducible-signal/
|
||||
```
|
||||
|
||||
To run a new ephemeral container with an interactive terminal session execute the following long command:
|
||||
```
|
||||
user@host:$ docker run \
|
||||
--name signal \
|
||||
--rm \
|
||||
--interactive \
|
||||
--tty \
|
||||
--volume $(pwd)/apk-from-google-play-store:/signal-build/apk-from-google-play-store \
|
||||
--workdir /signal-build \
|
||||
signal-android
|
||||
```
|
||||
Now you are inside the container.
|
||||
|
||||
Grab Signal's source code from GitHub and go to the repository directory:
|
||||
```
|
||||
root@container:# git clone https://github.com/signalapp/Signal-Android.git
|
||||
root@container:# cd Signal-Android
|
||||
```
|
||||
|
||||
Before you can compile, you **must** ensure that you are at the right commit. In other words you **must** checkout the version you wish to verify (here we are verifying 3.15.2):
|
||||
```
|
||||
root@container:# git checkout --quiet v3.15.2
|
||||
```
|
||||
|
||||
Now you may compile the release APK by running:
|
||||
```
|
||||
root@container:# ./gradlew clean assemblePlayRelease --exclude-task signProductionPlayRelease
|
||||
```
|
||||
This will take a few minutes :sleeping:
|
||||
|
||||
|
||||
#### Checking if the APKs match
|
||||
|
||||
After the build has completed successfully we can finally compare if the APKs match. For the comparison we need of course the Google Play Store version of Signal APK which you copied to the `apk-from-google-play-store` directory in the beginning of this guide. Because we used that directory as a `--volume` parameter for our container, we can see all the files in that directory within our container.
|
||||
|
||||
So now we can compare the APKs using the `apkdiff.py` tool.
|
||||
|
||||
The above build step produced several APKs, one for each supported ABI and one universal one. You will need to determine the correct APK to compare.
|
||||
|
||||
Currently, the most common ABI is `armeabi-v7a`. Other options at this time include `x86` and `universal`. In the future it will also include 64-bit options, such as `x86_64` and `arm64-v8a`.
|
||||
|
||||
See [Identifying the ABI](#identifying-the-abi) above if you don't know the ABI of your play store APK.
|
||||
|
||||
Once you have determined the ABI, add an `abi` environment variable. For example, suppose we determine that `armeabi-v7a` is the ABI google play has served:
|
||||
|
||||
```
|
||||
root@container:# export abi=armeabi-v7a
|
||||
```
|
||||
|
||||
And the diff script to compare:
|
||||
```
|
||||
root@container:# python3 apkdiff/apkdiff.py \
|
||||
build/outputs/apk/play/release/*play-$abi-release-unsigned*.apk \
|
||||
../apk-from-google-play-store/Signal-3.15.2.apk
|
||||
```
|
||||
Output:
|
||||
```
|
||||
APKs match!
|
||||
```
|
||||
|
||||
If you get `APKs match!`, you have successfully verified that the Google Play release matches with your own self-built version of Signal. Congratulations! Your APKs are a match made in heaven! :sparkles:
|
||||
|
||||
If you get `APKs don't match!`, you did something wrong in the previous steps. See the [Troubleshooting section](#troubleshooting) for more info.
|
||||
|
||||
|
||||
## Comparing next time
|
||||
|
||||
If the build environment (i.e. `Dockerfile`) has not changed, you don't need to build the image again to verify a newer APK. You can just [run the container again](#compiling-signal-inside-a-container).
|
||||
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If you cannot get things to work, please do not open an issue or comment on an existing issue at GitHub. Instead, ask for help at https://community.signalusers.org/c/development
|
||||
|
||||
Some common issues why things may not work:
|
||||
- some pinned packages in the `Dockerfile` are not available anymore and building of the Docker image fails
|
||||
- the Android packages in the Docker image are outdated and compiling Signal fails
|
||||
- you built the Docker image with a wrong version of the `Dockerfile`
|
||||
- you didn't checkout the correct Signal version tag with Git before compiling
|
||||
- the ABI you selected is not the correct ABI, particularly if you see an error along the lines of `Sorted manifests don't match, lib/x86/libcurve25519.so vs lib/armeabi-v7a/libcurve25519.so`.
|
||||
- this guide is outdated
|
||||
- you are in a dream
|
||||
- if you run into this issue: https://issuetracker.google.com/issues/110237303 try to add `resources.arsc` to the list of ignored files and compare again
|
||||
@@ -1,20 +1,21 @@
|
||||
#! /usr/bin/env python
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import sys
|
||||
from zipfile import ZipFile
|
||||
|
||||
class ApkDiff:
|
||||
|
||||
IGNORE_FILES = ["META-INF/CERT.RSA", "META-INF/CERT.SF", "META-INF/MANIFEST.MF"]
|
||||
# resources.arsc is ignored due to https://issuetracker.google.com/issues/110237303
|
||||
# May be fixed in Android Gradle Plugin 3.4
|
||||
IGNORE_FILES = ["META-INF/MANIFEST.MF", "META-INF/SIGNAL_S.RSA", "META-INF/SIGNAL_S.SF", "resources.arsc"]
|
||||
|
||||
def compare(self, sourceApk, destinationApk):
|
||||
sourceZip = ZipFile(sourceApk, 'r')
|
||||
destinationZip = ZipFile(destinationApk, 'r')
|
||||
|
||||
if self.compareManifests(sourceZip, destinationZip) and self.compareEntries(sourceZip, destinationZip) == True:
|
||||
print "APKs match!"
|
||||
print("APKs match!")
|
||||
else:
|
||||
print "APKs don't match!"
|
||||
print("APKs don't match!")
|
||||
|
||||
def compareManifests(self, sourceZip, destinationZip):
|
||||
sourceEntrySortedList = sorted(sourceZip.namelist())
|
||||
@@ -23,23 +24,23 @@ class ApkDiff:
|
||||
for ignoreFile in self.IGNORE_FILES:
|
||||
while ignoreFile in sourceEntrySortedList: sourceEntrySortedList.remove(ignoreFile)
|
||||
while ignoreFile in destinationEntrySortedList: destinationEntrySortedList.remove(ignoreFile)
|
||||
|
||||
|
||||
if len(sourceEntrySortedList) != len(destinationEntrySortedList):
|
||||
print "Manifest lengths differ!"
|
||||
|
||||
print("Manifest lengths differ!")
|
||||
|
||||
for (sourceEntryName, destinationEntryName) in zip(sourceEntrySortedList, destinationEntrySortedList):
|
||||
if sourceEntryName != destinationEntryName:
|
||||
print "Sorted manifests don't match, %s vs %s" % (sourceEntryName, destinationEntryName)
|
||||
print("Sorted manifests don't match, %s vs %s" % (sourceEntryName, destinationEntryName))
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def compareEntries(self, sourceZip, destinationZip):
|
||||
sourceInfoList = filter(lambda sourceInfo: sourceInfo.filename not in self.IGNORE_FILES, sourceZip.infolist())
|
||||
destinationInfoList = filter(lambda destinationInfo: destinationInfo.filename not in self.IGNORE_FILES, destinationZip.infolist())
|
||||
|
||||
sourceInfoList = list(filter(lambda sourceInfo: sourceInfo.filename not in self.IGNORE_FILES, sourceZip.infolist()))
|
||||
destinationInfoList = list(filter(lambda destinationInfo: destinationInfo.filename not in self.IGNORE_FILES, destinationZip.infolist()))
|
||||
|
||||
if len(sourceInfoList) != len(destinationInfoList):
|
||||
print "APK info lists of different length!"
|
||||
print("APK info lists of different length!")
|
||||
return False
|
||||
|
||||
for sourceEntryInfo in sourceInfoList:
|
||||
@@ -49,19 +50,19 @@ class ApkDiff:
|
||||
destinationEntry = destinationZip.open(destinationEntryInfo, 'r')
|
||||
|
||||
if self.compareFiles(sourceEntry, destinationEntry) != True:
|
||||
print "APK entry %s does not match %s!" % (sourceEntryInfo.filename, destinationEntryInfo.filename)
|
||||
print("APK entry %s does not match %s!" % (sourceEntryInfo.filename, destinationEntryInfo.filename))
|
||||
return False
|
||||
|
||||
destinationInfoList.remove(destinationEntryInfo)
|
||||
break
|
||||
|
||||
|
||||
return True
|
||||
|
||||
def compareFiles(self, sourceFile, destinationFile):
|
||||
sourceChunk = sourceFile.read(1024)
|
||||
destinationChunk = destinationFile.read(1024)
|
||||
|
||||
while sourceChunk != "" or destinationChunk != "":
|
||||
while sourceChunk != b"" or destinationChunk != b"":
|
||||
if sourceChunk != destinationChunk:
|
||||
return False
|
||||
|
||||
@@ -72,7 +73,7 @@ class ApkDiff:
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 3:
|
||||
print "Usage: apkdiff <pathToFirstApk> <pathToSecondApk>"
|
||||
print("Usage: apkdiff <pathToFirstApk> <pathToSecondApk>")
|
||||
sys.exit(1)
|
||||
|
||||
ApkDiff().compare(sys.argv[1], sys.argv[2])
|
||||
|
||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 922 KiB |
|
Before Width: | Height: | Size: 681 KiB |
|
Before Width: | Height: | Size: 612 KiB |
|
Before Width: | Height: | Size: 511 KiB |
|
Before Width: | Height: | Size: 546 KiB |
BIN
assets/emoji/Activity.png
Normal file
|
After Width: | Height: | Size: 333 KiB |
BIN
assets/emoji/Flags.png
Normal file
|
After Width: | Height: | Size: 812 KiB |
BIN
assets/emoji/Foods.png
Normal file
|
After Width: | Height: | Size: 604 KiB |
BIN
assets/emoji/Nature.png
Normal file
|
After Width: | Height: | Size: 691 KiB |
BIN
assets/emoji/Objects.png
Normal file
|
After Width: | Height: | Size: 866 KiB |
BIN
assets/emoji/People_0.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
assets/emoji/People_1.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
assets/emoji/People_2.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
assets/emoji/People_3.png
Normal file
|
After Width: | Height: | Size: 692 KiB |
BIN
assets/emoji/Places.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
assets/emoji/Symbols.png
Normal file
|
After Width: | Height: | Size: 487 KiB |
BIN
assets/stickers/animals/anteater.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
assets/stickers/animals/bat.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/stickers/animals/beetle.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
assets/stickers/animals/bulldog.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/butterfly.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
assets/stickers/animals/camel.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
assets/stickers/animals/cat.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/chameleon.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
assets/stickers/animals/clown-fish.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/stickers/animals/cobra.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/stickers/animals/cow.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/stickers/animals/crab.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/crocodile.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/stickers/animals/duck.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/stickers/animals/elephant.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
assets/stickers/animals/frog.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
assets/stickers/animals/giraffe.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/stickers/animals/hen.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/stickers/animals/hippopotamus.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/stickers/animals/kangaroo.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
assets/stickers/animals/lion.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/llama.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/stickers/animals/macaw.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/stickers/animals/monkey.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/moose.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/stickers/animals/mouse.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/stickers/animals/octopus.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
assets/stickers/animals/ostrich.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
assets/stickers/animals/owl.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
assets/stickers/animals/panda.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
assets/stickers/animals/pelican.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/stickers/animals/penguin.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
assets/stickers/animals/pig.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
assets/stickers/animals/rabbit.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
assets/stickers/animals/racoon.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
assets/stickers/animals/ray.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
assets/stickers/animals/rhinoceros.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/stickers/animals/sea-cow.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/stickers/animals/shark.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/stickers/animals/sheep.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
assets/stickers/animals/siberian-husky.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/stickers/animals/sloth.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/stickers/animals/snake.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/stickers/animals/spider.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/animals/squirrel.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
assets/stickers/animals/swan.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/stickers/animals/tiger.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/stickers/animals/toucan.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
assets/stickers/animals/turtle.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/stickers/animals/whale.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/stickers/clothes/backpack.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
assets/stickers/clothes/bathrobe.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
assets/stickers/clothes/belt.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/stickers/clothes/boot.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
assets/stickers/clothes/bow-tie.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/stickers/clothes/bowler-hat.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
assets/stickers/clothes/boxers.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
assets/stickers/clothes/bra.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/stickers/clothes/cap.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/stickers/clothes/dress-1.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
assets/stickers/clothes/dress-2.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
assets/stickers/clothes/dress-3.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
assets/stickers/clothes/dress.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
assets/stickers/clothes/glasses.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/stickers/clothes/hat.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
assets/stickers/clothes/high-heel.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
assets/stickers/clothes/jacket-1.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/stickers/clothes/jacket-2.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/stickers/clothes/jacket-3.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/stickers/clothes/jacket-4.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/clothes/jacket.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/stickers/clothes/jeans.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |