Compare commits
1219 Commits
v2.4.0
...
v3.9.4-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff704cf271 | ||
|
|
4e9f2e0919 | ||
|
|
cdc633d400 | ||
|
|
422a2bb2af | ||
|
|
1b0890ad43 | ||
|
|
aa56e1dd11 | ||
|
|
dfe6d93ba1 | ||
|
|
c27c1df594 | ||
|
|
9d4a9a7f43 | ||
|
|
e8539a9b8a | ||
|
|
8b3d0d82e4 | ||
|
|
6932699f20 | ||
|
|
511cf1a79f | ||
|
|
eea3721681 | ||
|
|
8a9801be01 | ||
|
|
550b5ef83a | ||
|
|
c0c8c128b5 | ||
|
|
88bf06cc6e | ||
|
|
adac77f36b | ||
|
|
e8479a001a | ||
|
|
401a740df9 | ||
|
|
a6a2d30e0a | ||
|
|
326ab62350 | ||
|
|
23c88e88e0 | ||
|
|
a8bd0e0a26 | ||
|
|
be759e1bb1 | ||
|
|
425a287121 | ||
|
|
c3a27eeadc | ||
|
|
7a15449dfe | ||
|
|
803134d541 | ||
|
|
9e3bde4b63 | ||
|
|
e6ad9b242b | ||
|
|
714a693897 | ||
|
|
1122828200 | ||
|
|
e6cea9c6d4 | ||
|
|
00ffd0edf5 | ||
|
|
23d6d63c90 | ||
|
|
ad92daf350 | ||
|
|
df6f34feb7 | ||
|
|
59c887bca1 | ||
|
|
6721ac5da6 | ||
|
|
95f94a77ac | ||
|
|
95d527d9d1 | ||
|
|
6b8287e96e | ||
|
|
7c1a6cf716 | ||
|
|
9cc76f749f | ||
|
|
5c9b12bc7d | ||
|
|
3007cc3357 | ||
|
|
9f3134165f | ||
|
|
6816b4d3c5 | ||
|
|
f52d6a7043 | ||
|
|
a120b0a3da | ||
|
|
32d11d9912 | ||
|
|
dd4870cc31 | ||
|
|
3bdb19620c | ||
|
|
84f3eaf827 | ||
|
|
68a33b4294 | ||
|
|
c7a364f59d | ||
|
|
aae4f1aedb | ||
|
|
6926ecb592 | ||
|
|
9c12620898 | ||
|
|
8c456e3c49 | ||
|
|
f561891749 | ||
|
|
7d538c9083 | ||
|
|
98c777bd3b | ||
|
|
b23223df3b | ||
|
|
354fd7c8bc | ||
|
|
3c2951f727 | ||
|
|
4a1389cdf1 | ||
|
|
1e2da65fe2 | ||
|
|
7a4d5efa90 | ||
|
|
e3573d7880 | ||
|
|
c63194c885 | ||
|
|
dd34e29b02 | ||
|
|
2244a2ae61 | ||
|
|
8408cc8a13 | ||
|
|
189d755c08 | ||
|
|
c1aeb3aadc | ||
|
|
9e3ac39731 | ||
|
|
e6e1153880 | ||
|
|
8849a2c55d | ||
|
|
178427dc60 | ||
|
|
91838e5ed3 | ||
|
|
c4732589e0 | ||
|
|
75af4921e6 | ||
|
|
a2f51d23b8 | ||
|
|
a2e4ee6d76 | ||
|
|
93bad27880 | ||
|
|
cfc6a04ff0 | ||
|
|
d33ac95870 | ||
|
|
f8b2f30994 | ||
|
|
dcf8d71bb4 | ||
|
|
a180cc8611 | ||
|
|
7aeb05ef61 | ||
|
|
0ec73e5aa0 | ||
|
|
f694204856 | ||
|
|
0a46c00983 | ||
|
|
2cc08e3971 | ||
|
|
2bdca8241a | ||
|
|
6e9c1914c2 | ||
|
|
a14acc58a4 | ||
|
|
d0049ddd1f | ||
|
|
4adb5072ea | ||
|
|
e0a5305394 | ||
|
|
35b0338f68 | ||
|
|
eadad98bbb | ||
|
|
f68527b258 | ||
|
|
ee2657e38b | ||
|
|
2cc514c16d | ||
|
|
639aad730d | ||
|
|
a7f3bbeea0 | ||
|
|
27070370ea | ||
|
|
502bce664b | ||
|
|
965875359d | ||
|
|
5933b78ab3 | ||
|
|
4576a632cf | ||
|
|
a7ceef90cf | ||
|
|
f12a504a69 | ||
|
|
09d234796d | ||
|
|
d2ec527886 | ||
|
|
c0b9ff7209 | ||
|
|
3a39f626e5 | ||
|
|
172d04cd44 | ||
|
|
0b800a28ac | ||
|
|
c131e92edc | ||
|
|
e18eb97ba4 | ||
|
|
437e3c4b38 | ||
|
|
d94f0a9f61 | ||
|
|
7d6647e0ad | ||
|
|
75776be0ff | ||
|
|
0f5a65a79c | ||
|
|
4366e133ff | ||
|
|
95359eed7b | ||
|
|
1af0a01ced | ||
|
|
886b8ce9a8 | ||
|
|
49dc284a5a | ||
|
|
17ec8e0b6b | ||
|
|
0a3bbb3b14 | ||
|
|
c0968fb896 | ||
|
|
749a593eb5 | ||
|
|
30869594f6 | ||
|
|
d4c07531d5 | ||
|
|
de082f7e55 | ||
|
|
536e7e32b8 | ||
|
|
4fc9e41c30 | ||
|
|
019e69d92c | ||
|
|
4383ae03d2 | ||
|
|
76cdbc4bf0 | ||
|
|
1508253670 | ||
|
|
dad12eac1a | ||
|
|
4deb5f8314 | ||
|
|
41c921cc0d | ||
|
|
4ac431d101 | ||
|
|
74c3c54ef4 | ||
|
|
8dbe56003b | ||
|
|
1884961fd0 | ||
|
|
2572ac2672 | ||
|
|
fca1625a3e | ||
|
|
eb83234eb0 | ||
|
|
f2e35d0102 | ||
|
|
bfbae56e3e | ||
|
|
de20749830 | ||
|
|
7cf3435f92 | ||
|
|
b325a7ad2e | ||
|
|
c770fc07f4 | ||
|
|
7532695935 | ||
|
|
5cbb2bef00 | ||
|
|
61a5136f14 | ||
|
|
671155d25e | ||
|
|
271eb46159 | ||
|
|
483e0abe51 | ||
|
|
8a496b2ea8 | ||
|
|
65eb71905f | ||
|
|
95b1ec9c4a | ||
|
|
07169e5061 | ||
|
|
d6de65c1e5 | ||
|
|
7f1e33bbd8 | ||
|
|
2d630c6c52 | ||
|
|
886ff3af9b | ||
|
|
32f7df54aa | ||
|
|
1d301b3e74 | ||
|
|
5ade1b8955 | ||
|
|
f31fac0b35 | ||
|
|
57173d02b1 | ||
|
|
85b08f29e8 | ||
|
|
cc05e95936 | ||
|
|
ffb3842036 | ||
|
|
5a5d204a30 | ||
|
|
9ce6274837 | ||
|
|
f3b5e35fdb | ||
|
|
f8f04cbf4b | ||
|
|
ce22666f8c | ||
|
|
2631f5a5b1 | ||
|
|
a5957af59d | ||
|
|
df45c0539a | ||
|
|
25e2b0d3a0 | ||
|
|
b3c9071179 | ||
|
|
fd8206052c | ||
|
|
021a754c07 | ||
|
|
271fe74338 | ||
|
|
93c4c91bef | ||
|
|
5054855523 | ||
|
|
25eeaf5a59 | ||
|
|
472d4c07e5 | ||
|
|
4dc670c8a8 | ||
|
|
86d8d76ce1 | ||
|
|
489894ffd0 | ||
|
|
be5ff96125 | ||
|
|
8415a488fd | ||
|
|
fdebcb940a | ||
|
|
6bf03b5d10 | ||
|
|
6bfb64151a | ||
|
|
2ddb2e3587 | ||
|
|
5de7177ba2 | ||
|
|
f52779ebb3 | ||
|
|
2f4b60f849 | ||
|
|
c199185ba5 | ||
|
|
108b94ad55 | ||
|
|
920bfa7bc3 | ||
|
|
d19bdcfba4 | ||
|
|
09c89c264d | ||
|
|
37b00f84d4 | ||
|
|
dbab1ca310 | ||
|
|
1a4225c844 | ||
|
|
cdce968b5d | ||
|
|
ed9b11bb52 | ||
|
|
702e9c2049 | ||
|
|
631959c9d8 | ||
|
|
303d52bed7 | ||
|
|
8682ecf649 | ||
|
|
d37e75888a | ||
|
|
8e5369887e | ||
|
|
58c46bfd95 | ||
|
|
7486c43342 | ||
|
|
5f005496df | ||
|
|
737ce71384 | ||
|
|
fbffacb24c | ||
|
|
d8f4ed45e7 | ||
|
|
ba9c91f9cb | ||
|
|
da5fb597bb | ||
|
|
46b4d21159 | ||
|
|
692225d6f3 | ||
|
|
547fd9fe82 | ||
|
|
9ee59fd0a7 | ||
|
|
a3ba8803ea | ||
|
|
4f40003f8b | ||
|
|
a1039bc056 | ||
|
|
4411b0ff85 | ||
|
|
7bf26551e3 | ||
|
|
d392e99a99 | ||
|
|
2de25d8fb1 | ||
|
|
6bab110f75 | ||
|
|
71ac936079 | ||
|
|
50f5eaceac | ||
|
|
c04fd8f729 | ||
|
|
fdf942b17f | ||
|
|
ca8e7b7214 | ||
|
|
87dc7c767d | ||
|
|
2046ebb2fd | ||
|
|
16fff7e1b2 | ||
|
|
7452ec6f53 | ||
|
|
9a4855db59 | ||
|
|
aeb5c554c5 | ||
|
|
d352d9f877 | ||
|
|
19feb974c6 | ||
|
|
58c7917942 | ||
|
|
8eb4702ceb | ||
|
|
459824f52f | ||
|
|
11ffd382b5 | ||
|
|
33db2124c6 | ||
|
|
5178bfd37a | ||
|
|
871f1d7e0f | ||
|
|
5f0c453157 | ||
|
|
d24dd7d3b7 | ||
|
|
8702abe745 | ||
|
|
eb00695e56 | ||
|
|
2fae53247c | ||
|
|
4a1d3c0321 | ||
|
|
8f572345ae | ||
|
|
708a4380e6 | ||
|
|
84be2234de | ||
|
|
39bfe8c8b4 | ||
|
|
4f67e9dc04 | ||
|
|
388048ce52 | ||
|
|
acf07e063d | ||
|
|
7e3450e64c | ||
|
|
189fdedbe6 | ||
|
|
379edc2465 | ||
|
|
074f563e7d | ||
|
|
6e1bad98a1 | ||
|
|
d5c18bf2c4 | ||
|
|
eb5c556b09 | ||
|
|
09c80f3b61 | ||
|
|
1af1645b2b | ||
|
|
36c83f1baf | ||
|
|
eab51d3cc8 | ||
|
|
f9d33fbdaa | ||
|
|
7abfc10dd1 | ||
|
|
b7c52ccbbe | ||
|
|
0a403b012d | ||
|
|
822fb29ca4 | ||
|
|
238dcac02c | ||
|
|
ca04ffb4fe | ||
|
|
fe351346c6 | ||
|
|
a8bc18c220 | ||
|
|
25eba8f1c4 | ||
|
|
706a37e24c | ||
|
|
e47a625d2b | ||
|
|
92fb428b12 | ||
|
|
6175032302 | ||
|
|
fe74e84161 | ||
|
|
bf50a61dd1 | ||
|
|
369aea9870 | ||
|
|
fd391c2a1d | ||
|
|
76f6ccce79 | ||
|
|
e762b88696 | ||
|
|
2b0b70acc6 | ||
|
|
8eff738e53 | ||
|
|
44c64730d1 | ||
|
|
e9f9bcae34 | ||
|
|
2337c63731 | ||
|
|
d4cdf8a215 | ||
|
|
ad5646579d | ||
|
|
536a5ce49e | ||
|
|
6b41c38783 | ||
|
|
bdee4beadb | ||
|
|
d0b106bbb6 | ||
|
|
a7d786a057 | ||
|
|
5f50ecbc82 | ||
|
|
2e84a9b0ec | ||
|
|
23495b47ce | ||
|
|
da773a1c98 | ||
|
|
8ed9eafafc | ||
|
|
c5b3327cdb | ||
|
|
bd992c6aea | ||
|
|
be82235f28 | ||
|
|
09a43b48f6 | ||
|
|
091ab2c879 | ||
|
|
361a12de99 | ||
|
|
1b4c4bf82b | ||
|
|
42284391f0 | ||
|
|
659d784015 | ||
|
|
b7a6ed84cf | ||
|
|
425101c2e3 | ||
|
|
46e3e41908 | ||
|
|
436de69f18 | ||
|
|
112919df61 | ||
|
|
a829a5aec3 | ||
|
|
e9099c1698 | ||
|
|
41801c15a2 | ||
|
|
66a4c3db42 | ||
|
|
d216f6a2ab | ||
|
|
0419676366 | ||
|
|
fd828416d9 | ||
|
|
fb44abba9f | ||
|
|
c0e23399f0 | ||
|
|
2d11cf2a8d | ||
|
|
7feebbc78f | ||
|
|
9f98ac18d6 | ||
|
|
dfab6b5606 | ||
|
|
c36e54c328 | ||
|
|
43f878a356 | ||
|
|
814d139837 | ||
|
|
81553e5183 | ||
|
|
3645acf447 | ||
|
|
05abae1f31 | ||
|
|
8be3968ccb | ||
|
|
d384f54842 | ||
|
|
4d07b67a40 | ||
|
|
d6f2b8d5d2 | ||
|
|
7eda0f529b | ||
|
|
cb3e6fc211 | ||
|
|
bc9795fb3c | ||
|
|
0c301841b3 | ||
|
|
42be1a1ec0 | ||
|
|
a05548be4b | ||
|
|
df76c59b29 | ||
|
|
3b253b69fc | ||
|
|
5d3a6da321 | ||
|
|
6ebcbf3ecc | ||
|
|
423c6adc62 | ||
|
|
bfebf4efc9 | ||
|
|
08913c2023 | ||
|
|
c76dc3102c | ||
|
|
2958704271 | ||
|
|
0eb69435bd | ||
|
|
f1c9d8150b | ||
|
|
73934bfac6 | ||
|
|
3068b0ee70 | ||
|
|
c998f1c84f | ||
|
|
04eeee2831 | ||
|
|
0c847d6ead | ||
|
|
70ce15dd47 | ||
|
|
09f9ac6fab | ||
|
|
47345a7961 | ||
|
|
d7c1f87a59 | ||
|
|
c40f8b11f8 | ||
|
|
5363e6c4cf | ||
|
|
4b913695c3 | ||
|
|
bc1d9cb9c4 | ||
|
|
803a9abd30 | ||
|
|
881e79022a | ||
|
|
e998cf7d28 | ||
|
|
28df75f516 | ||
|
|
c013df1751 | ||
|
|
e8175c6e60 | ||
|
|
43f3107795 | ||
|
|
81378cb1c7 | ||
|
|
fdd1ed423a | ||
|
|
6079d970c1 | ||
|
|
f9be730eab | ||
|
|
75b41081db | ||
|
|
251600eca5 | ||
|
|
e0cc3e9276 | ||
|
|
c4442ee1f0 | ||
|
|
792daa78c4 | ||
|
|
a75a44b4ac | ||
|
|
7da9e5e6a8 | ||
|
|
668b33b797 | ||
|
|
578b20d0b1 | ||
|
|
4b135212eb | ||
|
|
18ba05189c | ||
|
|
557c6f60f4 | ||
|
|
4b49e6d87d | ||
|
|
f930bd5f2b | ||
|
|
e9c925cf90 | ||
|
|
d5b0270916 | ||
|
|
254cf6ee30 | ||
|
|
af4c866fcd | ||
|
|
fb2b7d2773 | ||
|
|
b006f917b5 | ||
|
|
8c785fbd5f | ||
|
|
1a1c1defed | ||
|
|
29ee718257 | ||
|
|
0b09c9c3d7 | ||
|
|
f510bd537c | ||
|
|
118ca77d45 | ||
|
|
2dc53ae568 | ||
|
|
9f7139c63b | ||
|
|
15650f5e8a | ||
|
|
bf1803c285 | ||
|
|
113ed8a473 | ||
|
|
b3de192238 | ||
|
|
fca35bd30e | ||
|
|
8f96b9f958 | ||
|
|
0a97e30b02 | ||
|
|
d092da8909 | ||
|
|
cdaeffb817 | ||
|
|
de817bdfc6 | ||
|
|
434e4e657d | ||
|
|
093bcc21c7 | ||
|
|
f2dfcf3e72 | ||
|
|
85b2d4d2d9 | ||
|
|
d4fa71dea6 | ||
|
|
86d58b1c94 | ||
|
|
7bf34b094e | ||
|
|
8eb0355724 | ||
|
|
0fafb91427 | ||
|
|
d188af4417 | ||
|
|
ec1df2544b | ||
|
|
d36f4e5cd9 | ||
|
|
6564c82725 | ||
|
|
e26c28a741 | ||
|
|
b38839a197 | ||
|
|
98866b30e8 | ||
|
|
6b02924629 | ||
|
|
748187713b | ||
|
|
ca23377efc | ||
|
|
f160b8eea2 | ||
|
|
d4e22e8e69 | ||
|
|
7e03b09691 | ||
|
|
398c1cd3c9 | ||
|
|
8030ca6065 | ||
|
|
6e116eefe3 | ||
|
|
546aaa4758 | ||
|
|
2220ffdfff | ||
|
|
aaa4dd5141 | ||
|
|
571e658d51 | ||
|
|
dccca67377 | ||
|
|
dc34427335 | ||
|
|
6e364878f6 | ||
|
|
738ceec037 | ||
|
|
6c82f7f005 | ||
|
|
05d3f02984 | ||
|
|
0674943519 | ||
|
|
e78ab4f0ca | ||
|
|
9a90027395 | ||
|
|
f0b0c1360c | ||
|
|
94a0aec1a6 | ||
|
|
2267df26a1 | ||
|
|
fe17fe834c | ||
|
|
4d4dde54f8 | ||
|
|
b1c4a81c57 | ||
|
|
9a79ea5345 | ||
|
|
3dc622d1e5 | ||
|
|
867fae1a53 | ||
|
|
71d8ce84e4 | ||
|
|
a99119c263 | ||
|
|
02fd60000e | ||
|
|
ee67e01f97 | ||
|
|
4f05a45d6b | ||
|
|
d967a2cf9d | ||
|
|
450a9eb8ec | ||
|
|
cac2bab721 | ||
|
|
27a91aee67 | ||
|
|
05052a0b56 | ||
|
|
48817ecc8c | ||
|
|
02da9eb0cf | ||
|
|
4ea6caa697 | ||
|
|
e19f45b912 | ||
|
|
fb87c00d1b | ||
|
|
cd98e78ebb | ||
|
|
7ebc78b91e | ||
|
|
88f0d2546e | ||
|
|
104646833b | ||
|
|
b21c15dab1 | ||
|
|
c2198344e6 | ||
|
|
dca63426a6 | ||
|
|
c9bd4dcb63 | ||
|
|
0358aaaffd | ||
|
|
31eb285f2f | ||
|
|
2dbfb27cd9 | ||
|
|
f2864546d7 | ||
|
|
3e50dc20de | ||
|
|
7eab0f15e5 | ||
|
|
7766dabf8c | ||
|
|
eaa2981aa7 | ||
|
|
214d596764 | ||
|
|
611a84d4cf | ||
|
|
1aafd343ec | ||
|
|
d25348e9bb | ||
|
|
7044c48e1a | ||
|
|
4f1b0bb450 | ||
|
|
66dd3b4840 | ||
|
|
4ae9c05879 | ||
|
|
58f6819820 | ||
|
|
88f87da4df | ||
|
|
9905037cb7 | ||
|
|
8a5fb6f710 | ||
|
|
3a210bb0bd | ||
|
|
6f16c47727 | ||
|
|
07772d17e9 | ||
|
|
77b2ef979b | ||
|
|
a71e7b894e | ||
|
|
430e706f5c | ||
|
|
ded8b1dc34 | ||
|
|
97bc803900 | ||
|
|
46509c281b | ||
|
|
b47edc9670 | ||
|
|
81d0f58694 | ||
|
|
c06139a8e7 | ||
|
|
978d6f1d12 | ||
|
|
63eaac9187 | ||
|
|
8996f72b9c | ||
|
|
8e5d29f698 | ||
|
|
466786dc7a | ||
|
|
a919fe8b80 | ||
|
|
e66d16cc06 | ||
|
|
a5f3867c6d | ||
|
|
c9309fa970 | ||
|
|
bcd00723ab | ||
|
|
2f400b4adc | ||
|
|
9fe96c2228 | ||
|
|
55a4e16208 | ||
|
|
74138012ce | ||
|
|
2bf62f25f2 | ||
|
|
76d1bc9eb4 | ||
|
|
2e7ff173d1 | ||
|
|
0394987d80 | ||
|
|
188c1f5f3a | ||
|
|
058c490286 | ||
|
|
7fce10f584 | ||
|
|
77c0612edd | ||
|
|
60c70b723f | ||
|
|
e0442ffcc2 | ||
|
|
5fc6b31d88 | ||
|
|
317e194ddc | ||
|
|
64228e095f | ||
|
|
fcd7c8803b | ||
|
|
3efa6ac234 | ||
|
|
555958ab53 | ||
|
|
18caf9b3c0 | ||
|
|
819df66666 | ||
|
|
8c3e6d345a | ||
|
|
28055235aa | ||
|
|
423cc6bafd | ||
|
|
e43fb927ce | ||
|
|
d8ef5a1e1a | ||
|
|
1e8baa1f00 | ||
|
|
526978a607 | ||
|
|
4971bfe84b | ||
|
|
43177d9bc1 | ||
|
|
027207a732 | ||
|
|
4068f991c0 | ||
|
|
6d82e889ae | ||
|
|
1db9e797dc | ||
|
|
1b1253344a | ||
|
|
7dcec8d949 | ||
|
|
e19ef5f842 | ||
|
|
336daf887d | ||
|
|
0ada5fbdae | ||
|
|
70301c63b0 | ||
|
|
778888b941 | ||
|
|
ff79ca0a07 | ||
|
|
7ea44668b0 | ||
|
|
301a282f96 | ||
|
|
b855ed0c10 | ||
|
|
9f08a6ad28 | ||
|
|
9f2a731fc7 | ||
|
|
ec8b65207c | ||
|
|
b26a49b405 | ||
|
|
daedc0637d | ||
|
|
aa743ba058 | ||
|
|
52e9d147a5 | ||
|
|
960a6b4d77 | ||
|
|
5f7bec0349 | ||
|
|
c718018700 | ||
|
|
f64aadb8c6 | ||
|
|
b00378e989 | ||
|
|
06e2adef6b | ||
|
|
4749e3e326 | ||
|
|
c4af165b1e | ||
|
|
797fb41241 | ||
|
|
1aa0da1e96 | ||
|
|
1c6810aca9 | ||
|
|
e5fce05360 | ||
|
|
a74ceac116 | ||
|
|
67946e75e7 | ||
|
|
398a4bdd3e | ||
|
|
9bc48f21e2 | ||
|
|
f4331a5d60 | ||
|
|
bf66aade3b | ||
|
|
a79e961bba | ||
|
|
2152769f79 | ||
|
|
5668e8c04b | ||
|
|
c500cbd202 | ||
|
|
3b5ce56d8a | ||
|
|
fa05fb937a | ||
|
|
d049efb496 | ||
|
|
f5b351fe6c | ||
|
|
269a0a8e9b | ||
|
|
d83a65c43f | ||
|
|
f489498420 | ||
|
|
f08abc2d60 | ||
|
|
dfab798beb | ||
|
|
1507c53c56 | ||
|
|
8ce99baa36 | ||
|
|
7d1c19046f | ||
|
|
6130cff3b3 | ||
|
|
a05191fb5e | ||
|
|
8b59951a08 | ||
|
|
f8b6264d2d | ||
|
|
a1f0e6a3fd | ||
|
|
bcf405cef3 | ||
|
|
4271847889 | ||
|
|
fb3c0b9496 | ||
|
|
c62fd8bdda | ||
|
|
8717caf3d8 | ||
|
|
c0b80c2d9f | ||
|
|
ef1580b66a | ||
|
|
a1724d12ca | ||
|
|
643ba623f0 | ||
|
|
26a4514615 | ||
|
|
c1cc7a556c | ||
|
|
b3ea6170a0 | ||
|
|
019528cb5d | ||
|
|
c3cc4def49 | ||
|
|
9f6da72528 | ||
|
|
b863a15c65 | ||
|
|
970a60b284 | ||
|
|
760846245e | ||
|
|
626c9c1d66 | ||
|
|
fc1e1a8b0e | ||
|
|
843db3ab96 | ||
|
|
95432db1c4 | ||
|
|
2109f82163 | ||
|
|
1689a5dcf0 | ||
|
|
ec90dc3593 | ||
|
|
c55eb71afd | ||
|
|
5047afa0de | ||
|
|
2fd19faf5b | ||
|
|
74da7bc643 | ||
|
|
0c50e00f65 | ||
|
|
a0b04c77a0 | ||
|
|
8506d52ac8 | ||
|
|
1d6d555ce7 | ||
|
|
78776d47fa | ||
|
|
2bdd257973 | ||
|
|
ceedd21e81 | ||
|
|
b731fe262a | ||
|
|
3f0c828ae2 | ||
|
|
4b1c431ffd | ||
|
|
8d0c66f2ea | ||
|
|
4c6ac81212 | ||
|
|
5846220681 | ||
|
|
2ffb5babd8 | ||
|
|
6f65ef4e5c | ||
|
|
facebef5b1 | ||
|
|
3c166aa83b | ||
|
|
68663cdfb5 | ||
|
|
a6b32fd771 | ||
|
|
5ef2016e7c | ||
|
|
e1c8896159 | ||
|
|
57b21b06fc | ||
|
|
660135f93f | ||
|
|
e94ffeaf5e | ||
|
|
62fa7fc978 | ||
|
|
b8e116ea44 | ||
|
|
12dcad7ea3 | ||
|
|
def276c44f | ||
|
|
439fd655d7 | ||
|
|
180ce9266e | ||
|
|
83112537ab | ||
|
|
43065775a0 | ||
|
|
3cee6b0c3b | ||
|
|
67b733ba90 | ||
|
|
2190c1faca | ||
|
|
acf667f37d | ||
|
|
df25368e5c | ||
|
|
6f3ce9d890 | ||
|
|
33ad9f4d42 | ||
|
|
c60c09afe1 | ||
|
|
95379bd281 | ||
|
|
63178a07d0 | ||
|
|
7e695f9331 | ||
|
|
3e3f78a69c | ||
|
|
9e985eee49 | ||
|
|
c737b34a3d | ||
|
|
e4677c6d0e | ||
|
|
526e76473f | ||
|
|
712f1e9473 | ||
|
|
8384854870 | ||
|
|
9f7d0767c2 | ||
|
|
b5dda25795 | ||
|
|
0b410cf792 | ||
|
|
c0b506a17f | ||
|
|
fad74cd09d | ||
|
|
1e73e6fc00 | ||
|
|
ac8a30d0ec | ||
|
|
da8d6b0a9d | ||
|
|
5dd40d93c3 | ||
|
|
888c5cb7d8 | ||
|
|
abb18ac5fc | ||
|
|
3d37af4bc0 | ||
|
|
d5de8c83c9 | ||
|
|
fbb75ca58a | ||
|
|
45bdbd99c5 | ||
|
|
87ed2ec4fd | ||
|
|
fbdc1b3c31 | ||
|
|
b6f0ab115b | ||
|
|
aa10ee43d7 | ||
|
|
89f30436bb | ||
|
|
099915821f | ||
|
|
be62189743 | ||
|
|
eede7ed1ca | ||
|
|
1b8a6e5244 | ||
|
|
e679cba366 | ||
|
|
a9ff54a3d6 | ||
|
|
b9f0e1ac40 | ||
|
|
4a12de5b75 | ||
|
|
45b6b0d6e9 | ||
|
|
09daf2689c | ||
|
|
1a062dcbba | ||
|
|
2da470b2bd | ||
|
|
a85211149e | ||
|
|
77c78816af | ||
|
|
f4dd64fb6c | ||
|
|
185a75e442 | ||
|
|
a729a04591 | ||
|
|
04739a01dc | ||
|
|
de59bbf87f | ||
|
|
5e872b532b | ||
|
|
61aeba9a3d | ||
|
|
315ce129b0 | ||
|
|
73e75467b0 | ||
|
|
c7a0fb91af | ||
|
|
362e7581a3 | ||
|
|
e0b4c36715 | ||
|
|
b838aab54d | ||
|
|
5b095c9d40 | ||
|
|
918fd70f3c | ||
|
|
4ccc3cf9ac | ||
|
|
96b8563fed | ||
|
|
fd8bc23526 | ||
|
|
96a1ae0f0a | ||
|
|
06ad2501b6 | ||
|
|
07bad47b0e | ||
|
|
29832045d3 | ||
|
|
953ae8363b | ||
|
|
ddb1392904 | ||
|
|
baff0ad0c7 | ||
|
|
5122f1b917 | ||
|
|
cd007ee786 | ||
|
|
92c27fcaa3 | ||
|
|
3cad2c8be7 | ||
|
|
83eb988a0f | ||
|
|
5ced298663 | ||
|
|
59637500e0 | ||
|
|
328daa7e03 | ||
|
|
679d4b8c9f | ||
|
|
dca1aebeef | ||
|
|
0a1c7c1355 | ||
|
|
8962da2278 | ||
|
|
26dde72f66 | ||
|
|
f060d8d909 | ||
|
|
300384385d | ||
|
|
a8b2af12a7 | ||
|
|
3c2d57a6da | ||
|
|
122ff429a0 | ||
|
|
e3b2401ca6 | ||
|
|
50ccafdf44 | ||
|
|
78d574f185 | ||
|
|
4557fca662 | ||
|
|
019937fb0e | ||
|
|
b81441a1ee | ||
|
|
426ad68c40 | ||
|
|
a1fb78cc32 | ||
|
|
6be8a43c1a | ||
|
|
49aa72f12b | ||
|
|
21c0a73647 | ||
|
|
f6ab307db0 | ||
|
|
f5eb37583a | ||
|
|
b1313b8a8d | ||
|
|
fa5512d4c3 | ||
|
|
8142c1172b | ||
|
|
2b99e09c6b | ||
|
|
029fafc802 | ||
|
|
da35f9c848 | ||
|
|
a230296473 | ||
|
|
430fd8ff7c | ||
|
|
392332ec45 | ||
|
|
8b34480d88 | ||
|
|
352ebbc700 | ||
|
|
c9663dbc52 | ||
|
|
04569388cc | ||
|
|
67d6d5395e | ||
|
|
8e42d4ede1 | ||
|
|
f4d2c91b1d | ||
|
|
efb04e2f9b | ||
|
|
e91183dcef | ||
|
|
a601d0a1d7 | ||
|
|
936106fdc4 | ||
|
|
ec66380a39 | ||
|
|
e5a84d0fda | ||
|
|
8fbc38063d | ||
|
|
4962d7e6c9 | ||
|
|
5df058d1fa | ||
|
|
0b8366d1f1 | ||
|
|
92af41c2d5 | ||
|
|
037e11c75d | ||
|
|
264f54c037 | ||
|
|
5257ee212f | ||
|
|
18217f4bed | ||
|
|
f7e8195e34 | ||
|
|
d9fcd78d6f | ||
|
|
d71e75d9e6 | ||
|
|
3e45d969c1 | ||
|
|
2ed4a23ee5 | ||
|
|
2dff14b654 | ||
|
|
dc051077a6 | ||
|
|
25038cfd01 | ||
|
|
a51018e2f2 | ||
|
|
e20a32c0c6 | ||
|
|
4b396652d9 | ||
|
|
2179e88982 | ||
|
|
c39d144c88 | ||
|
|
58fe182d3e | ||
|
|
548fc4c2b8 | ||
|
|
ab706ff8fb | ||
|
|
25b4f25d9c | ||
|
|
a72ac6c005 | ||
|
|
b2baed17b1 | ||
|
|
eba5c715c2 | ||
|
|
acbdbff9f4 | ||
|
|
3d0362c7b9 | ||
|
|
2e70c290a5 | ||
|
|
b5095cba7a | ||
|
|
789d576bd1 | ||
|
|
68feeba680 | ||
|
|
142ad317bf | ||
|
|
efcc0dd406 | ||
|
|
267da18e7e | ||
|
|
c66227c0d3 | ||
|
|
bc06f1a53a | ||
|
|
6ba866154c | ||
|
|
eea2d834a0 | ||
|
|
874a74ddf2 | ||
|
|
d71f2daa5a | ||
|
|
f8bb61f5e9 | ||
|
|
0d7d0bed12 | ||
|
|
8cb4227fac | ||
|
|
f32cdd112a | ||
|
|
c3862bb418 | ||
|
|
f07b9260e5 | ||
|
|
f87e53b110 | ||
|
|
63b052b1a1 | ||
|
|
4fdaa5816b | ||
|
|
b8a6f861d0 | ||
|
|
1212125da8 | ||
|
|
d119b97871 | ||
|
|
f4a6eff6af | ||
|
|
bc530f60e5 | ||
|
|
ac3b1c0a00 | ||
|
|
f9aa40cbab | ||
|
|
654668a586 | ||
|
|
a3101646f6 | ||
|
|
795aa97666 | ||
|
|
a1a20d3f9f | ||
|
|
a880eae47f | ||
|
|
75990c2297 | ||
|
|
8720263f1c | ||
|
|
25dc1ec62a | ||
|
|
4b818067a9 | ||
|
|
fa11e8d7d2 | ||
|
|
3290106d66 | ||
|
|
ff5f862ff0 | ||
|
|
909c531f26 | ||
|
|
002641f0ac | ||
|
|
04d5d5a16d | ||
|
|
5299e9c165 | ||
|
|
f9eab318b3 | ||
|
|
2297155e30 | ||
|
|
85dd19e789 | ||
|
|
a2f658d1ce | ||
|
|
00abb00e8d | ||
|
|
322e3bc00f | ||
|
|
aaee282f9d | ||
|
|
02d945c90d | ||
|
|
ed2f4604a9 | ||
|
|
29cee57e23 | ||
|
|
0cc42b0e5f | ||
|
|
977507fe8f | ||
|
|
9ed6e364ee | ||
|
|
b4fcc95ff5 | ||
|
|
a6c76d268e | ||
|
|
0f16afa48f | ||
|
|
dcfc4ca4f0 | ||
|
|
fd1c60f521 | ||
|
|
c521fc7e3d | ||
|
|
0754afbe60 | ||
|
|
fd7f49b9a8 | ||
|
|
191ffe02bb | ||
|
|
1efff95ccc | ||
|
|
ae7c59b6d2 | ||
|
|
d942b2866f | ||
|
|
9a3ef19db2 | ||
|
|
565cac3d8d | ||
|
|
0292ffe137 | ||
|
|
856123086b | ||
|
|
dd81bd69c0 | ||
|
|
ff93575a67 | ||
|
|
30705d0c7c | ||
|
|
b520541e9d | ||
|
|
7fd7a21551 | ||
|
|
916d9a4bdd | ||
|
|
ac76d46eb2 | ||
|
|
8026a4b2b6 | ||
|
|
fdf5838650 | ||
|
|
a6adecb4f7 | ||
|
|
9240d450cd | ||
|
|
a1ec39e799 | ||
|
|
d9fa61f73f | ||
|
|
4b4beef9a7 | ||
|
|
ce95510199 | ||
|
|
1c6d57ba78 | ||
|
|
463679a795 | ||
|
|
38d97d923f | ||
|
|
cbeb1548e6 | ||
|
|
da2d88e58b | ||
|
|
445e683591 | ||
|
|
14eb95e659 | ||
|
|
4488470733 | ||
|
|
eda9724405 | ||
|
|
341529b3b3 | ||
|
|
b9c696b0de | ||
|
|
7b8c4c2281 | ||
|
|
63af14db08 | ||
|
|
4a975a895d | ||
|
|
19ffb6b88f | ||
|
|
8486b65a96 | ||
|
|
7040f3ce76 | ||
|
|
ae94759d78 | ||
|
|
4497132169 | ||
|
|
1e4947a0d2 | ||
|
|
b96491e97e | ||
|
|
f46b04ca4d | ||
|
|
8459649d11 | ||
|
|
c5fbd4bb93 | ||
|
|
9e7209c283 | ||
|
|
6b3b5169ac | ||
|
|
ebd6e8f4d1 | ||
|
|
577e70bd33 | ||
|
|
ad9908ec92 | ||
|
|
1cbfe1b096 | ||
|
|
b6b59f11d4 | ||
|
|
e0c871de4d | ||
|
|
638ce08150 | ||
|
|
859d41726f | ||
|
|
a34590195d | ||
|
|
db7983e6f2 | ||
|
|
8622f312a6 | ||
|
|
f6f430d58a | ||
|
|
47d3cba6d4 | ||
|
|
6b1570164d | ||
|
|
7d11763dd7 | ||
|
|
7fa512efc7 | ||
|
|
8b593d4b9d | ||
|
|
51f511aec9 | ||
|
|
6e08f8ede5 | ||
|
|
86ecebb540 | ||
|
|
90e11c510e | ||
|
|
bc3d610dbb | ||
|
|
6fa1ea2882 | ||
|
|
02740bd1d4 | ||
|
|
985b9e91fb | ||
|
|
799f0176e0 | ||
|
|
41d3067a12 | ||
|
|
fe9525b0a8 | ||
|
|
341b23a16c | ||
|
|
83fef36eca | ||
|
|
564c0ddf86 | ||
|
|
44e4c5efe0 | ||
|
|
0475b1fd6d | ||
|
|
85591d8689 | ||
|
|
3cc01da947 | ||
|
|
6cb7e163a2 | ||
|
|
b4587b449e | ||
|
|
c563760bb1 | ||
|
|
2488ac968e | ||
|
|
52c0a35bc8 | ||
|
|
869fbf529d | ||
|
|
01e8b6e6d6 | ||
|
|
fbe56b800b | ||
|
|
4b6f1160d6 | ||
|
|
9614b1807f | ||
|
|
4520c5c562 | ||
|
|
c37d4cd7bd | ||
|
|
c7691a6f7b | ||
|
|
3f6958d796 | ||
|
|
61e5d6fb50 | ||
|
|
663a8eadba | ||
|
|
9b1f0a5541 | ||
|
|
93b0f6a37c | ||
|
|
bfcdc12046 | ||
|
|
9e1c34db53 | ||
|
|
9967aaa9e2 | ||
|
|
52eb57940b | ||
|
|
bebb64dc01 | ||
|
|
618fccd08a | ||
|
|
4b09cbd110 | ||
|
|
5eb4e6f7b8 | ||
|
|
b0c2c21402 | ||
|
|
05d5838162 | ||
|
|
b16db5004b | ||
|
|
d528c3cb32 | ||
|
|
3f6601b21e | ||
|
|
8b87ba9c6f | ||
|
|
d3e67874ff | ||
|
|
83528bbca6 | ||
|
|
9ec37b5f37 | ||
|
|
544cf71f09 | ||
|
|
27a23a93d9 | ||
|
|
30918807d5 | ||
|
|
dd45cbf3d9 | ||
|
|
af75601fba | ||
|
|
de49dcdf81 | ||
|
|
0633e8e7a9 | ||
|
|
e8904c7ae0 | ||
|
|
172ac05eba | ||
|
|
860fa9ac88 | ||
|
|
526126b263 | ||
|
|
f54b69e887 | ||
|
|
d0995ead1a | ||
|
|
adcdbb187f | ||
|
|
bb5c10314c | ||
|
|
57f1cc46cc | ||
|
|
154e76943d | ||
|
|
2ef2f20a5c | ||
|
|
e3090acf21 | ||
|
|
710bdacc3b | ||
|
|
ef4d0e574d | ||
|
|
697bad0649 | ||
|
|
31ec7cc7ca | ||
|
|
2d79d6e3ef | ||
|
|
083287f533 | ||
|
|
baa41c2644 | ||
|
|
cb57d7218c | ||
|
|
340950b828 | ||
|
|
1b0621a1c1 | ||
|
|
70e3c61582 | ||
|
|
989ad6061f | ||
|
|
46ee9727f4 | ||
|
|
0d081cd4c3 | ||
|
|
1f454a2e45 | ||
|
|
2857fcdf22 | ||
|
|
9011217c8f | ||
|
|
04b3f3c614 | ||
|
|
a28626318d | ||
|
|
628170c609 | ||
|
|
075a678cb5 | ||
|
|
0c2f2b7d9d | ||
|
|
911ecdfa0e | ||
|
|
93d2ff9772 | ||
|
|
c5815fec39 | ||
|
|
277bb958ac | ||
|
|
f05f28f8f4 | ||
|
|
0abe4bd1c9 | ||
|
|
6af383dc1d | ||
|
|
1fe2470295 | ||
|
|
25fb18c064 | ||
|
|
841a3845f0 | ||
|
|
4f85435189 | ||
|
|
43582c3f0d | ||
|
|
999b3bd2f4 | ||
|
|
559ec3ef97 | ||
|
|
56f552d58a | ||
|
|
85807e9f3f | ||
|
|
61f714f835 | ||
|
|
7db6346c05 | ||
|
|
33239e8de1 | ||
|
|
5c0db8c315 | ||
|
|
aaba204e8e | ||
|
|
a569dbc833 | ||
|
|
5ebabd18bc | ||
|
|
d424cfb935 | ||
|
|
fecd067c18 | ||
|
|
f1cfd65beb | ||
|
|
163dd2e865 | ||
|
|
3314acab6d | ||
|
|
296a0028a6 | ||
|
|
24dd93eae0 | ||
|
|
9eca69fc2c | ||
|
|
b75f70f64e | ||
|
|
2b6942feb5 | ||
|
|
e5c1c38b07 | ||
|
|
e936051472 | ||
|
|
7d67ca1178 | ||
|
|
500c81659c | ||
|
|
da3a0464f5 | ||
|
|
d0225f4ad0 | ||
|
|
b1c9dcd18c | ||
|
|
1d1ef8ff2b | ||
|
|
50e6976901 | ||
|
|
55e1783b37 | ||
|
|
a2da6b2c3e | ||
|
|
c20482c9fb | ||
|
|
783f2aac79 | ||
|
|
3322fa96cf | ||
|
|
1ce4ac208b | ||
|
|
7c1ceb1eff | ||
|
|
62a76117ec | ||
|
|
855b32977e | ||
|
|
d719121cb9 | ||
|
|
b19a5eaf3e | ||
|
|
dc3d48ab71 | ||
|
|
16cbc3c4f0 | ||
|
|
37b526672f | ||
|
|
94d67b05ae | ||
|
|
bfb74467ae | ||
|
|
aa9c780a72 | ||
|
|
806484a6ce | ||
|
|
53a30e46f1 | ||
|
|
8658395fee | ||
|
|
6ddb2c7103 | ||
|
|
55620a6b80 | ||
|
|
f1ee5c112f | ||
|
|
077c8fa734 | ||
|
|
db58f55a38 | ||
|
|
90c34de49f | ||
|
|
1bd871777a | ||
|
|
238cf3ecfe | ||
|
|
452d7fb9fd | ||
|
|
1916200154 | ||
|
|
0444c116d4 | ||
|
|
a25cfc0d51 | ||
|
|
4dd6a2f6c1 | ||
|
|
60094d43b9 | ||
|
|
aba7050c54 | ||
|
|
051eb425e7 | ||
|
|
d01f88f44f | ||
|
|
e7b7c76590 | ||
|
|
8e62d3e9c0 | ||
|
|
a9df0e1842 | ||
|
|
e8a20b2986 | ||
|
|
1a4ddfee71 | ||
|
|
3c0d91e320 | ||
|
|
a0f317b7c3 | ||
|
|
08b5d92f6d | ||
|
|
fb8b323335 | ||
|
|
afabb54c42 | ||
|
|
aa89efee15 | ||
|
|
0bc224f671 | ||
|
|
d0164a958d | ||
|
|
f165e0b2b2 | ||
|
|
a5f9e55fe2 | ||
|
|
7fc46c160c | ||
|
|
481135bcb2 | ||
|
|
a2c49d2feb | ||
|
|
02551f62ce | ||
|
|
07436c3c70 | ||
|
|
53c993cd67 | ||
|
|
d7b21ea307 | ||
|
|
d2962f10be | ||
|
|
39ffb8e50a | ||
|
|
d3d81253a4 | ||
|
|
febe7eacd7 | ||
|
|
240dee72d5 | ||
|
|
7e5875d213 | ||
|
|
d33f01f04f | ||
|
|
5e36b493c1 | ||
|
|
7274f50684 | ||
|
|
d9182694a6 | ||
|
|
ad68e046f1 | ||
|
|
0d082d1635 | ||
|
|
989b96213f | ||
|
|
f2c3129fee | ||
|
|
9c20b5da49 | ||
|
|
b516c94512 | ||
|
|
4d636c2d13 |
@@ -5,7 +5,7 @@ root = true
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
end_of_line = crlf
|
||||
end_of_line = lf
|
||||
|
||||
[*.json]
|
||||
|
||||
11
.gitattributes
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
* text=auto
|
||||
*.cs text eol=crlf
|
||||
*.xaml text eol=crlf
|
||||
|
||||
*.cpp text eol=lf
|
||||
*.hpp text eol=lf
|
||||
*.h text eol=lf
|
||||
|
||||
*.json text eol=lf
|
||||
*.md text eol=lf
|
||||
*.yaml text eol=lf
|
||||
16
.github/ISSUE_TEMPLATE/-----bug-report-.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 问题反馈(Bug report)
|
||||
about: 识别错误、操作异常、连接错误等
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
!!!请尽可能详细的描述你遇到的问题,并附上助手软件目录下的 `asst.log` 日志文件!!!
|
||||
|
||||
!!!日志文件是可以直接拖拽进来的,没有日志文件的 bug 反馈我们会直接关掉!!!
|
||||
|
||||
最好再能说明下使用的模拟器、并附上出错时的游戏和软件的截图(要是没截到就算啦_(:з」∠)_
|
||||
|
||||
Thanks♪(・ω・)ノ
|
||||
10
.github/ISSUE_TEMPLATE/-----feature-request-.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 需求建议(Feature request)
|
||||
about: 新功能、建议等
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
||||
10
.github/ISSUE_TEMPLATE/---others-.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 其他(Others)
|
||||
about: 其他议题
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
||||
30
.github/workflows/deploy-docs.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: deploy-docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "docs/*"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy-to-azure:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build and Deploy Job
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Build And Deploy
|
||||
id: builddeploy
|
||||
uses: Azure/static-web-apps-deploy@v1
|
||||
with:
|
||||
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_GENTLE_DESERT_00290F400 }}
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
|
||||
action: "upload"
|
||||
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
|
||||
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
|
||||
app_location: "/docs" # App source code path
|
||||
api_location: "" # Api source code path - optional
|
||||
output_location: ".vuepress/dist" # Built app content directory - optional
|
||||
69
.github/workflows/dev-build.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# <auto-generated>
|
||||
#
|
||||
# This code was generated.
|
||||
#
|
||||
# - To turn off auto-generation set:
|
||||
#
|
||||
# [GitHubActions (AutoGenerate = false)]
|
||||
#
|
||||
# - To trigger manual generation invoke:
|
||||
#
|
||||
# nuke --generate-configuration GitHubActions_dev-build --host GitHubActions
|
||||
#
|
||||
# </auto-generated>
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
name: dev-build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- master
|
||||
paths:
|
||||
- 'src/MeoAssistant/**'
|
||||
- 'src/MeoAssistantBuilder/**'
|
||||
- 'src/MeoAsstGui/**'
|
||||
- '3rdparty/**'
|
||||
- 'include/**'
|
||||
- 'resource/**'
|
||||
- MeoAssistantArknights.sln
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
paths:
|
||||
- 'src/MeoAssistant/**'
|
||||
- 'src/MeoAssistantBuilder/**'
|
||||
- 'src/MeoAsstGui/**'
|
||||
- '3rdparty/**'
|
||||
- 'include/**'
|
||||
- 'resource/**'
|
||||
- MeoAssistantArknights.sln
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
Reason:
|
||||
description: "Reason"
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
windows-latest:
|
||||
name: windows-latest
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
~/.nuget/packages
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
|
||||
- name: Run './build.cmd DevBuild'
|
||||
run: ./build.cmd DevBuild
|
||||
env:
|
||||
Reason: ${{ github.event.inputs.Reason }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: artifacts
|
||||
path: artifacts
|
||||
48
.github/workflows/release-maa-resource.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# <auto-generated>
|
||||
#
|
||||
# This code was generated.
|
||||
#
|
||||
# - To turn off auto-generation set:
|
||||
#
|
||||
# [GitHubActions (AutoGenerate = false)]
|
||||
#
|
||||
# - To trigger manual generation invoke:
|
||||
#
|
||||
# nuke --generate-configuration GitHubActions_release-maa-resource --host GitHubActions
|
||||
#
|
||||
# </auto-generated>
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
name: release-maa-resource
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'resource/**'
|
||||
- '3rdparty/resource/**'
|
||||
|
||||
jobs:
|
||||
windows-latest:
|
||||
name: windows-latest
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
~/.nuget/packages
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
|
||||
- name: Run './build.cmd ReleaseMaaResource'
|
||||
run: ./build.cmd ReleaseMaaResource
|
||||
env:
|
||||
PUBLISH_GH_PAT: ${{ secrets.PUBLISH_GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: artifacts
|
||||
path: artifacts
|
||||
45
.github/workflows/release-maa.yml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# <auto-generated>
|
||||
#
|
||||
# This code was generated.
|
||||
#
|
||||
# - To turn off auto-generation set:
|
||||
#
|
||||
# [GitHubActions (AutoGenerate = false)]
|
||||
#
|
||||
# - To trigger manual generation invoke:
|
||||
#
|
||||
# nuke --generate-configuration GitHubActions_release-maa --host GitHubActions
|
||||
#
|
||||
# </auto-generated>
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
name: release-maa
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
windows-latest:
|
||||
name: windows-latest
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Cache .nuke/temp, ~/.nuget/packages
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
.nuke/temp
|
||||
~/.nuget/packages
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
|
||||
- name: Run './build.cmd ReleaseMaa'
|
||||
run: ./build.cmd ReleaseMaa
|
||||
env:
|
||||
PUBLISH_GH_PAT: ${{ secrets.PUBLISH_GH_PAT }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: artifacts
|
||||
path: artifacts
|
||||
11
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# docs
|
||||
docs/node_modules
|
||||
docs/.vuepress/.temp
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
@@ -430,5 +433,11 @@ FodyWeavers.xsd
|
||||
|
||||
screen.png
|
||||
adb_screen.png
|
||||
tools/*.png
|
||||
tools/**/*.png
|
||||
resource/infrast
|
||||
.vscode
|
||||
!3rdparty/tools/*
|
||||
|
||||
# Nuke
|
||||
.nuke/temp/*
|
||||
/tools/ItemMappingCvt/Arknights-Bot-Resource
|
||||
|
||||
137
.nuke/build.schema.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"title": "Build Schema",
|
||||
"$ref": "#/definitions/build",
|
||||
"definitions": {
|
||||
"build": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"Continue": {
|
||||
"type": "boolean",
|
||||
"description": "Indicates to continue a previously failed build attempt"
|
||||
},
|
||||
"Help": {
|
||||
"type": "boolean",
|
||||
"description": "Shows the help text for this build assembly"
|
||||
},
|
||||
"Host": {
|
||||
"type": "string",
|
||||
"description": "Host for execution. Default is 'automatic'",
|
||||
"enum": [
|
||||
"AppVeyor",
|
||||
"AzurePipelines",
|
||||
"Bamboo",
|
||||
"Bitrise",
|
||||
"GitHubActions",
|
||||
"GitLab",
|
||||
"Jenkins",
|
||||
"Rider",
|
||||
"SpaceAutomation",
|
||||
"TeamCity",
|
||||
"Terminal",
|
||||
"TravisCI",
|
||||
"VisualStudio",
|
||||
"VSCode"
|
||||
]
|
||||
},
|
||||
"NoLogo": {
|
||||
"type": "boolean",
|
||||
"description": "Disables displaying the NUKE logo"
|
||||
},
|
||||
"Partition": {
|
||||
"type": "string",
|
||||
"description": "Partition to use on CI"
|
||||
},
|
||||
"Plan": {
|
||||
"type": "boolean",
|
||||
"description": "Shows the execution plan (HTML)"
|
||||
},
|
||||
"Profile": {
|
||||
"type": "array",
|
||||
"description": "Defines the profiles to load",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"Root": {
|
||||
"type": "string",
|
||||
"description": "Root directory during build execution"
|
||||
},
|
||||
"Skip": {
|
||||
"type": "array",
|
||||
"description": "List of targets to be skipped. Empty list skips all dependencies",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Default",
|
||||
"DevBuild",
|
||||
"ReleaseMaa",
|
||||
"ReleaseMaaCore",
|
||||
"ReleaseMaaResource",
|
||||
"SetMaaChangeLog",
|
||||
"SetPackageBundled",
|
||||
"SetVersion",
|
||||
"UseCleanArtifact",
|
||||
"UseCleanRelease",
|
||||
"UseCommitVersion",
|
||||
"UseMaaChangeLog",
|
||||
"UseMaaCore",
|
||||
"UseMaaDevBundle",
|
||||
"UseMaaLegacyBundle",
|
||||
"UseMaaResource",
|
||||
"UseMaaResourceChangeLog",
|
||||
"UsePublishArtifact",
|
||||
"UsePublishRelease",
|
||||
"UseTagVersion",
|
||||
"WithCompileCoreRelease",
|
||||
"WithCompileResourceRelease",
|
||||
"WithCompileWpfRelease"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Target": {
|
||||
"type": "array",
|
||||
"description": "List of targets to be invoked. Default is '{default_target}'",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Default",
|
||||
"DevBuild",
|
||||
"ReleaseMaa",
|
||||
"ReleaseMaaCore",
|
||||
"ReleaseMaaResource",
|
||||
"SetMaaChangeLog",
|
||||
"SetPackageBundled",
|
||||
"SetVersion",
|
||||
"UseCleanArtifact",
|
||||
"UseCleanRelease",
|
||||
"UseCommitVersion",
|
||||
"UseMaaChangeLog",
|
||||
"UseMaaCore",
|
||||
"UseMaaDevBundle",
|
||||
"UseMaaLegacyBundle",
|
||||
"UseMaaResource",
|
||||
"UseMaaResourceChangeLog",
|
||||
"UsePublishArtifact",
|
||||
"UsePublishRelease",
|
||||
"UseTagVersion",
|
||||
"WithCompileCoreRelease",
|
||||
"WithCompileResourceRelease",
|
||||
"WithCompileWpfRelease"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Verbosity": {
|
||||
"type": "string",
|
||||
"description": "Logging verbosity during build execution. Default is 'Normal'",
|
||||
"enum": [
|
||||
"Minimal",
|
||||
"Normal",
|
||||
"Quiet",
|
||||
"Verbose"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
.nuke/parameters.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"$schema": "./build.schema.json",
|
||||
"Solution": "tools/MaaBuilder.sln"
|
||||
}
|
||||
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": [
|
||||
"resource/tasks.json"
|
||||
],
|
||||
"url": "./docs/maa_tasks_schema.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
3rdparty/bin/libiomp5md.dll
vendored
Normal file
BIN
3rdparty/bin/penguin-stats-recognize.dll
vendored
BIN
3rdparty/bin/ppocr.dll
vendored
202
3rdparty/include/Arknights-Tile-Pos/TileCalc.hpp
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
#include <opencv2/core.hpp>
|
||||
#include <meojson/json.hpp>
|
||||
|
||||
namespace Map
|
||||
{
|
||||
struct Tile
|
||||
{
|
||||
int heightType = 0;
|
||||
int buildableType = 0;
|
||||
std::string tileKey;
|
||||
};
|
||||
|
||||
class Level
|
||||
{
|
||||
public:
|
||||
Level(const json::value& data);
|
||||
int get_width() const { return width; }
|
||||
int get_height() const { return height; }
|
||||
Tile get_item(int y, int x) const { return tiles[y][x]; }
|
||||
std::vector<cv::Point3d> view;
|
||||
std::string stageId;
|
||||
std::string code;
|
||||
std::string levelId;
|
||||
std::string name;
|
||||
private:
|
||||
int height = 0;
|
||||
int width = 0;
|
||||
std::vector<std::vector<Tile>> tiles;
|
||||
};
|
||||
class TileCalc
|
||||
{
|
||||
public:
|
||||
TileCalc(int width, int height, const std::string& dir);
|
||||
bool run(const std::string& code_or_name, bool side, std::vector<std::vector<cv::Point2d>>& out_pos, std::vector<std::vector<Tile>>& out_tiles) const;
|
||||
private:
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
const double degree = atan(1.0) * 4 / 180;
|
||||
std::vector<Level> levels;
|
||||
cv::Mat MatrixP = cv::Mat(4, 4, CV_64F);
|
||||
cv::Mat MatrixX = cv::Mat(4, 4, CV_64F);
|
||||
cv::Mat MatrixY = cv::Mat(4, 4, CV_64F);
|
||||
bool adapter(double& x, double& y) const;
|
||||
};
|
||||
|
||||
inline void InitMat4x4(cv::Mat& m, double(*num)[4])
|
||||
{
|
||||
for (int i = 0; i < m.rows; i++)
|
||||
for (int j = 0; j < m.cols; j++)
|
||||
m.at<double>(i, j) = num[i][j];
|
||||
}
|
||||
|
||||
inline Level::Level(const json::value& data)
|
||||
{
|
||||
Level::stageId = data.at("stageId").as_string();
|
||||
Level::code = data.at("code").as_string();
|
||||
Level::levelId = data.at("levelId").as_string();
|
||||
Level::name = data.get("name", "null");
|
||||
Level::height = data.at("height").as_integer();
|
||||
Level::width = data.at("width").as_integer();
|
||||
for (const json::value& point_data : data.at("view").as_array()) {
|
||||
cv::Point3d tmp;
|
||||
auto point_array = point_data.as_array();
|
||||
tmp.x = point_array[0].as_double();
|
||||
tmp.y = point_array[1].as_double();
|
||||
tmp.z = point_array[2].as_double();
|
||||
Level::view.emplace_back(std::move(tmp));
|
||||
}
|
||||
for (const json::value& row : data.at("tiles").as_array()) {
|
||||
std::vector<Tile> tmp;
|
||||
tmp.reserve(Level::width);
|
||||
for (const json::value& tile : row.as_array()) {
|
||||
tmp.emplace_back(Tile{
|
||||
tile.at("heightType").as_integer(),
|
||||
tile.at("buildableType").as_integer(),
|
||||
tile.get("tileKey", std::string()) });
|
||||
}
|
||||
tiles.emplace_back(std::move(tmp));
|
||||
}
|
||||
}
|
||||
|
||||
inline TileCalc::TileCalc(int width, int height, const std::string& dir)
|
||||
{
|
||||
TileCalc::width = width;
|
||||
TileCalc::height = height;
|
||||
double ratio = static_cast<double>(height) / width;
|
||||
double matrixP[4][4]{
|
||||
{ ratio / tan(20 * degree), 0, 0, 0},
|
||||
{ 0, 1 / tan(20 * degree), 0, 0},
|
||||
{ 0, 0, -(1000 + 0.3) / (1000 - 0.3), -(1000 * 0.3 * 2) / (1000 - 0.3)},
|
||||
{ 0, 0, -1, 0 }
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixP, matrixP);
|
||||
double matrixX[4][4]{
|
||||
{ 1, 0, 0, 0},
|
||||
{ 0, cos(30 * degree), -sin(30 * degree), 0},
|
||||
{ 0, -sin(30 * degree), -cos(30 * degree), 0},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixX, matrixX);
|
||||
double matrixY[4][4]{
|
||||
{ cos(10 * degree), 0, sin(10 * degree), 0},
|
||||
{ 0, 1, 0, 0},
|
||||
{ -sin(10 * degree), 0, cos(10 * degree), 0},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
InitMat4x4(TileCalc::MatrixY, matrixY);
|
||||
std::ifstream ifs(dir, std::ios::in);
|
||||
if (!ifs.is_open()) {
|
||||
std::cerr << "Read resource failed" << std::endl;
|
||||
throw "Read resource failed";
|
||||
}
|
||||
std::stringstream iss;
|
||||
iss << ifs.rdbuf();
|
||||
ifs.close();
|
||||
std::string content = iss.str();
|
||||
auto ret = json::parse(content);
|
||||
if (!ret) {
|
||||
std::cerr << "Parsing failed" << std::endl;
|
||||
throw "Parsing failed";
|
||||
}
|
||||
for (const json::value& item : ret.value().as_array()) {
|
||||
TileCalc::levels.emplace_back(item);
|
||||
}
|
||||
}
|
||||
|
||||
inline bool TileCalc::adapter(double& x, double& y) const
|
||||
{
|
||||
const double fromRatio = 9.0 / 16;
|
||||
const double toRatio = 3.0 / 4;
|
||||
double ratio = static_cast<double>(height) / width;
|
||||
if (ratio < fromRatio - 0.00001) {
|
||||
x = 0;
|
||||
y = 0;
|
||||
return false;
|
||||
}
|
||||
double t = (ratio - fromRatio) / (toRatio - fromRatio);
|
||||
x = -1.4 * t;
|
||||
y = -2.8 * t;
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool TileCalc::run(const std::string& code_or_name, bool side, std::vector<std::vector<cv::Point2d>>& out_pos, std::vector<std::vector<Tile>>& out_tiles) const
|
||||
{
|
||||
for (const Map::Level& level : TileCalc::levels) {
|
||||
if (level.code != code_or_name &&
|
||||
level.name != code_or_name &&
|
||||
level.levelId != code_or_name &&
|
||||
level.stageId != code_or_name) {
|
||||
continue;
|
||||
}
|
||||
auto [x, y, z] = level.view[side ? 1 : 0];
|
||||
double adapter_y = 0, adapter_z = 0;
|
||||
TileCalc::adapter(adapter_y, adapter_z);
|
||||
double matrix[4][4]{
|
||||
{ 1, 0, 0, -x},
|
||||
{ 0, 1, 0, -y - adapter_y},
|
||||
{ 0, 0, 1, -z - adapter_z},
|
||||
{ 0, 0, 0, 1}
|
||||
};
|
||||
auto raw = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
auto Finall_Matrix = cv::Mat(cv::Size(4, 4), CV_64F);
|
||||
InitMat4x4(raw, matrix);
|
||||
if (side) {
|
||||
Finall_Matrix = TileCalc::MatrixP * TileCalc::MatrixX * TileCalc::MatrixY * raw;
|
||||
}
|
||||
else {
|
||||
Finall_Matrix = TileCalc::MatrixP * TileCalc::MatrixX * raw;
|
||||
}
|
||||
int h = level.get_height();
|
||||
int w = level.get_width();
|
||||
auto map_point = cv::Mat(cv::Size(1, 4), CV_64F);
|
||||
map_point.at<double>(3, 0) = 1;
|
||||
auto tmp_pos = std::vector<cv::Point2d>(w);
|
||||
auto tmp_tiles = std::vector<Tile>(w);
|
||||
for (int i = 0; i < h; i++) {
|
||||
for (int j = 0; j < w; j++) {
|
||||
tmp_tiles[j] = level.get_item(i, j);
|
||||
map_point.at<double>(0, 0) = j - (w - 1) / 2.0;
|
||||
map_point.at<double>(1, 0) = (h - 1) / 2.0 - i;
|
||||
map_point.at<double>(2, 0) = tmp_tiles[j].heightType * -0.4;
|
||||
cv::Mat view_point = Finall_Matrix * map_point;
|
||||
view_point = view_point / view_point.at<double>(3, 0);
|
||||
view_point = (view_point + 1) / 2;
|
||||
tmp_pos[j] = cv::Point2d(view_point.at<double>(0, 0) * TileCalc::width, (1 - view_point.at<double>(1, 0)) * TileCalc::height);
|
||||
}
|
||||
out_pos.emplace_back(tmp_pos);
|
||||
out_tiles.emplace_back(tmp_tiles);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
49
3rdparty/include/PaddleOCR/paddle_ocr.h
vendored
@@ -13,26 +13,43 @@ typedef unsigned char uint8_t;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
OCRAPI_PORT paddle_ocr_t* OCR_CALL PaddleOcrCreate(
|
||||
const char* det_model_dir, const char* rec_model_dir,
|
||||
const char* char_list_file, const char* cls_model_dir);
|
||||
OCRAPI_PORT paddle_ocr_t* OCR_CALL PaddleOcrCreate(
|
||||
const char* det_model_dir, const char* rec_model_dir,
|
||||
const char* char_list_file, const char* cls_model_dir);
|
||||
|
||||
void OCRAPI PaddleOcrDestroy(paddle_ocr_t* ocr_ptr);
|
||||
void OCRAPI PaddleOcrDestroy(paddle_ocr_t* ocr_ptr);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrDet(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size,
|
||||
int* out_boxes, size_t* out_boxes_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
OCR_ERROR OCRAPI PaddleOcrDet(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size,
|
||||
int* out_boxes, size_t* out_boxes_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrRec(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size,
|
||||
char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
OCR_ERROR OCRAPI PaddleOcrDetWithData(
|
||||
paddle_ocr_t* ocr_ptr, int rows, int cols, int type, void* data,
|
||||
int* out_boxes, size_t* out_boxes_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrSystem(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size, bool with_cls,
|
||||
int* out_boxes, char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
OCR_ERROR OCRAPI PaddleOcrRec(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size,
|
||||
char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrRecWithData(
|
||||
paddle_ocr_t* ocr_ptr, int rows, int cols, int type, void* data,
|
||||
char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrSystem(
|
||||
paddle_ocr_t* ocr_ptr, const uint8_t* encode_buf, size_t encode_buf_size,
|
||||
bool with_cls,
|
||||
int* out_boxes, char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
OCR_ERROR OCRAPI PaddleOcrSystemWithData(
|
||||
paddle_ocr_t* ocr_ptr, int rows, int cols, int type, void* data,
|
||||
bool with_cls,
|
||||
int* out_boxes, char** out_strs, float* out_scores, size_t* out_size,
|
||||
double* out_times, size_t* out_times_size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
310
3rdparty/include/cpp-base64/base64.hpp
vendored
Normal file
@@ -0,0 +1,310 @@
|
||||
/*
|
||||
base64.cpp and base64.h
|
||||
|
||||
base64 encoding and decoding with C++.
|
||||
More information at
|
||||
https://renenyffenegger.ch/notes/development/Base64/Encoding-and-decoding-base-64-with-cpp
|
||||
|
||||
Version: 2.rc.08 (release candidate)
|
||||
|
||||
Copyright (C) 2004-2017, 2020, 2021 René Nyffenegger
|
||||
|
||||
This source code is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this source code must not be misrepresented; you must not
|
||||
claim that you wrote the original source code. If you use this source code
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original source code.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
René Nyffenegger rene.nyffenegger@adp-gmbh.ch
|
||||
|
||||
*/
|
||||
#ifndef BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A
|
||||
#define BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A
|
||||
|
||||
#include <string>
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
#include <string_view>
|
||||
#endif // __cplusplus >= 201703L
|
||||
|
||||
std::string base64_encode (std::string const& s, bool url = false);
|
||||
std::string base64_encode_pem (std::string const& s);
|
||||
std::string base64_encode_mime(std::string const& s);
|
||||
|
||||
std::string base64_decode(std::string const& s, bool remove_linebreaks = false);
|
||||
std::string base64_encode(unsigned char const*, size_t len, bool url = false);
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
//
|
||||
// Interface with std::string_view rather than const std::string&
|
||||
// Requires C++17
|
||||
// Provided by Yannic Bonenberger (https://github.com/Yannic)
|
||||
//
|
||||
std::string base64_encode (std::string_view s, bool url = false);
|
||||
std::string base64_encode_pem (std::string_view s);
|
||||
std::string base64_encode_mime(std::string_view s);
|
||||
|
||||
std::string base64_decode(std::string_view s, bool remove_linebreaks = false);
|
||||
#endif // __cplusplus >= 201703L
|
||||
|
||||
#include <algorithm>
|
||||
#include <stdexcept>
|
||||
|
||||
//
|
||||
// Depending on the url parameter in base64_chars, one of
|
||||
// two sets of base64 characters needs to be chosen.
|
||||
// They differ in their last two characters.
|
||||
//
|
||||
static const char* base64_chars[2] = {
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"0123456789"
|
||||
"+/",
|
||||
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"0123456789"
|
||||
"-_"};
|
||||
|
||||
static unsigned int pos_of_char(const unsigned char chr) {
|
||||
//
|
||||
// Return the position of chr within base64_encode()
|
||||
//
|
||||
|
||||
if (chr >= 'A' && chr <= 'Z') return chr - 'A';
|
||||
else if (chr >= 'a' && chr <= 'z') return chr - 'a' + ('Z' - 'A') + 1;
|
||||
else if (chr >= '0' && chr <= '9') return chr - '0' + ('Z' - 'A') + ('z' - 'a') + 2;
|
||||
else if (chr == '+' || chr == '-') return 62; // Be liberal with input and accept both url ('-') and non-url ('+') base 64 characters (
|
||||
else if (chr == '/' || chr == '_') return 63; // Ditto for '/' and '_'
|
||||
else
|
||||
//
|
||||
// 2020-10-23: Throw std::exception rather than const char*
|
||||
//(Pablo Martin-Gomez, https://github.com/Bouska)
|
||||
//
|
||||
throw std::runtime_error("Input is not valid base64-encoded data.");
|
||||
}
|
||||
|
||||
static std::string insert_linebreaks(std::string str, size_t distance) {
|
||||
//
|
||||
// Provided by https://github.com/JomaCorpFX, adapted by me.
|
||||
//
|
||||
if (!str.length()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
size_t pos = distance;
|
||||
|
||||
while (pos < str.size()) {
|
||||
str.insert(pos, "\n");
|
||||
pos += distance + 1;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
template <typename String, unsigned int line_length>
|
||||
static std::string encode_with_line_breaks(String s) {
|
||||
return insert_linebreaks(base64_encode(s, false), line_length);
|
||||
}
|
||||
|
||||
template <typename String>
|
||||
static std::string encode_pem(String s) {
|
||||
return encode_with_line_breaks<String, 64>(s);
|
||||
}
|
||||
|
||||
template <typename String>
|
||||
static std::string encode_mime(String s) {
|
||||
return encode_with_line_breaks<String, 76>(s);
|
||||
}
|
||||
|
||||
template <typename String>
|
||||
static std::string encode(String s, bool url) {
|
||||
return base64_encode(reinterpret_cast<const unsigned char*>(s.data()), s.length(), url);
|
||||
}
|
||||
|
||||
std::string base64_encode(unsigned char const* bytes_to_encode, size_t in_len, bool url) {
|
||||
|
||||
size_t len_encoded = (in_len +2) / 3 * 4;
|
||||
|
||||
unsigned char trailing_char = url ? '.' : '=';
|
||||
|
||||
//
|
||||
// Choose set of base64 characters. They differ
|
||||
// for the last two positions, depending on the url
|
||||
// parameter.
|
||||
// A bool (as is the parameter url) is guaranteed
|
||||
// to evaluate to either 0 or 1 in C++ therefore,
|
||||
// the correct character set is chosen by subscripting
|
||||
// base64_chars with url.
|
||||
//
|
||||
const char* base64_chars_ = base64_chars[url];
|
||||
|
||||
std::string ret;
|
||||
ret.reserve(len_encoded);
|
||||
|
||||
unsigned int pos = 0;
|
||||
|
||||
while (pos < in_len) {
|
||||
ret.push_back(base64_chars_[(bytes_to_encode[pos + 0] & 0xfc) >> 2]);
|
||||
|
||||
if (pos+1 < in_len) {
|
||||
ret.push_back(base64_chars_[((bytes_to_encode[pos + 0] & 0x03) << 4) + ((bytes_to_encode[pos + 1] & 0xf0) >> 4)]);
|
||||
|
||||
if (pos+2 < in_len) {
|
||||
ret.push_back(base64_chars_[((bytes_to_encode[pos + 1] & 0x0f) << 2) + ((bytes_to_encode[pos + 2] & 0xc0) >> 6)]);
|
||||
ret.push_back(base64_chars_[ bytes_to_encode[pos + 2] & 0x3f]);
|
||||
}
|
||||
else {
|
||||
ret.push_back(base64_chars_[(bytes_to_encode[pos + 1] & 0x0f) << 2]);
|
||||
ret.push_back(trailing_char);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
ret.push_back(base64_chars_[(bytes_to_encode[pos + 0] & 0x03) << 4]);
|
||||
ret.push_back(trailing_char);
|
||||
ret.push_back(trailing_char);
|
||||
}
|
||||
|
||||
pos += 3;
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
template <typename String>
|
||||
static std::string decode(String encoded_string, bool remove_linebreaks) {
|
||||
//
|
||||
// decode(…) is templated so that it can be used with String = const std::string&
|
||||
// or std::string_view (requires at least C++17)
|
||||
//
|
||||
|
||||
if (encoded_string.empty()) return std::string();
|
||||
|
||||
if (remove_linebreaks) {
|
||||
|
||||
std::string copy(encoded_string);
|
||||
|
||||
copy.erase(std::remove(copy.begin(), copy.end(), '\n'), copy.end());
|
||||
|
||||
return base64_decode(copy, false);
|
||||
}
|
||||
|
||||
size_t length_of_string = encoded_string.length();
|
||||
size_t pos = 0;
|
||||
|
||||
//
|
||||
// The approximate length (bytes) of the decoded string might be one or
|
||||
// two bytes smaller, depending on the amount of trailing equal signs
|
||||
// in the encoded string. This approximation is needed to reserve
|
||||
// enough space in the string to be returned.
|
||||
//
|
||||
size_t approx_length_of_decoded_string = length_of_string / 4 * 3;
|
||||
std::string ret;
|
||||
ret.reserve(approx_length_of_decoded_string);
|
||||
|
||||
while (pos < length_of_string) {
|
||||
//
|
||||
// Iterate over encoded input string in chunks. The size of all
|
||||
// chunks except the last one is 4 bytes.
|
||||
//
|
||||
// The last chunk might be padded with equal signs or dots
|
||||
// in order to make it 4 bytes in size as well, but this
|
||||
// is not required as per RFC 2045.
|
||||
//
|
||||
// All chunks except the last one produce three output bytes.
|
||||
//
|
||||
// The last chunk produces at least one and up to three bytes.
|
||||
//
|
||||
|
||||
size_t pos_of_char_1 = pos_of_char(encoded_string[pos+1] );
|
||||
|
||||
//
|
||||
// Emit the first output byte that is produced in each chunk:
|
||||
//
|
||||
ret.push_back(static_cast<std::string::value_type>( ( (pos_of_char(encoded_string[pos+0]) ) << 2 ) + ( (pos_of_char_1 & 0x30 ) >> 4)));
|
||||
|
||||
if ( ( pos + 2 < length_of_string ) && // Check for data that is not padded with equal signs (which is allowed by RFC 2045)
|
||||
encoded_string[pos+2] != '=' &&
|
||||
encoded_string[pos+2] != '.' // accept URL-safe base 64 strings, too, so check for '.' also.
|
||||
)
|
||||
{
|
||||
//
|
||||
// Emit a chunk's second byte (which might not be produced in the last chunk).
|
||||
//
|
||||
unsigned int pos_of_char_2 = pos_of_char(encoded_string[pos+2] );
|
||||
ret.push_back(static_cast<std::string::value_type>( (( pos_of_char_1 & 0x0f) << 4) + (( pos_of_char_2 & 0x3c) >> 2)));
|
||||
|
||||
if ( ( pos + 3 < length_of_string ) &&
|
||||
encoded_string[pos+3] != '=' &&
|
||||
encoded_string[pos+3] != '.'
|
||||
)
|
||||
{
|
||||
//
|
||||
// Emit a chunk's third byte (which might not be produced in the last chunk).
|
||||
//
|
||||
ret.push_back(static_cast<std::string::value_type>( ( (pos_of_char_2 & 0x03 ) << 6 ) + pos_of_char(encoded_string[pos+3]) ));
|
||||
}
|
||||
}
|
||||
|
||||
pos += 4;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::string base64_decode(std::string const& s, bool remove_linebreaks) {
|
||||
return decode(s, remove_linebreaks);
|
||||
}
|
||||
|
||||
std::string base64_encode(std::string const& s, bool url) {
|
||||
return encode(s, url);
|
||||
}
|
||||
|
||||
std::string base64_encode_pem (std::string const& s) {
|
||||
return encode_pem(s);
|
||||
}
|
||||
|
||||
std::string base64_encode_mime(std::string const& s) {
|
||||
return encode_mime(s);
|
||||
}
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
//
|
||||
// Interface with std::string_view rather than const std::string&
|
||||
// Requires C++17
|
||||
// Provided by Yannic Bonenberger (https://github.com/Yannic)
|
||||
//
|
||||
|
||||
std::string base64_encode(std::string_view s, bool url) {
|
||||
return encode(s, url);
|
||||
}
|
||||
|
||||
std::string base64_encode_pem(std::string_view s) {
|
||||
return encode_pem(s);
|
||||
}
|
||||
|
||||
std::string base64_encode_mime(std::string_view s) {
|
||||
return encode_mime(s);
|
||||
}
|
||||
|
||||
std::string base64_decode(std::string_view s, bool remove_linebreaks) {
|
||||
return decode(s, remove_linebreaks);
|
||||
}
|
||||
|
||||
#endif // __cplusplus >= 201703L
|
||||
|
||||
#endif /* BASE64_H_C0CE2A47_D10E_42C9_A27C_C883944E704A */
|
||||
7
3rdparty/include/meojson/json.h
vendored
@@ -1,7 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "json_parser.h"
|
||||
#include "json_value.h"
|
||||
#include "json_object.h"
|
||||
#include "json_array.h"
|
||||
#include "json_exception.h"
|
||||
2342
3rdparty/include/meojson/json.hpp
vendored
Normal file
97
3rdparty/include/meojson/json_array.h
vendored
@@ -1,97 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <initializer_list>
|
||||
|
||||
namespace json
|
||||
{
|
||||
class value;
|
||||
|
||||
class array
|
||||
{
|
||||
public:
|
||||
using raw_array = std::vector<value>;
|
||||
using iterator = raw_array::iterator;
|
||||
using const_iterator = raw_array::const_iterator;
|
||||
using reverse_iterator = raw_array::reverse_iterator;
|
||||
using const_reverse_iterator = raw_array::const_reverse_iterator;
|
||||
|
||||
array() = default;
|
||||
array(const array& rhs) = default;
|
||||
array(array&& rhs) noexcept = default;
|
||||
array(const raw_array& arr);
|
||||
array(raw_array&& arr) noexcept;
|
||||
array(std::initializer_list<raw_array::value_type> init_list);
|
||||
template<typename ArrayType>
|
||||
array(ArrayType arr) {
|
||||
static_assert(
|
||||
std::is_constructible<json::value, typename ArrayType::value_type>::value,
|
||||
"Parameter can't be used to construct a json::value");
|
||||
for (auto&& ele : arr) {
|
||||
_array_data.emplace_back(std::move(ele));
|
||||
}
|
||||
}
|
||||
|
||||
~array() noexcept = default;
|
||||
|
||||
bool empty() const noexcept { return _array_data.empty(); }
|
||||
size_t size() const noexcept { return _array_data.size(); }
|
||||
bool exist(size_t pos) const { return _array_data.size() < pos; }
|
||||
const value& at(size_t pos) const;
|
||||
const std::string to_string() const;
|
||||
const std::string format(std::string shift_str = " ", size_t basic_shift_count = 0) const;
|
||||
|
||||
const bool get(size_t pos, bool default_value) const;
|
||||
const int get(size_t pos, int default_value) const;
|
||||
const long get(size_t pos, long default_value) const;
|
||||
const unsigned long get(size_t pos, unsigned default_value) const;
|
||||
const long long get(size_t pos, long long default_value) const;
|
||||
const unsigned long long get(size_t pos, unsigned long long default_value) const;
|
||||
const float get(size_t pos, float default_value) const;
|
||||
const double get(size_t pos, double default_value) const;
|
||||
const long double get(size_t pos, long double default_value) const;
|
||||
const std::string get(size_t pos, std::string default_value) const;
|
||||
const std::string get(size_t pos, const char* default_value) const;
|
||||
|
||||
template <typename... Args>
|
||||
decltype(auto) emplace_back(Args &&... args)
|
||||
{
|
||||
static_assert(
|
||||
std::is_constructible<raw_array::value_type, Args...>::value,
|
||||
"Parameter can't be used to construct a raw_array::value_type");
|
||||
return _array_data.emplace_back(std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
void clear() noexcept;
|
||||
// void earse(size_t pos);
|
||||
|
||||
iterator begin() noexcept;
|
||||
iterator end() noexcept;
|
||||
const_iterator begin() const noexcept;
|
||||
const_iterator end() const noexcept;
|
||||
const_iterator cbegin() const noexcept;
|
||||
const_iterator cend() const noexcept;
|
||||
|
||||
reverse_iterator rbegin() noexcept;
|
||||
reverse_iterator rend() noexcept;
|
||||
const_reverse_iterator rbegin() const noexcept;
|
||||
const_reverse_iterator rend() const noexcept;
|
||||
const_reverse_iterator crbegin() const noexcept;
|
||||
const_reverse_iterator crend() const noexcept;
|
||||
|
||||
const value& operator[](size_t pos) const;
|
||||
value& operator[](size_t pos);
|
||||
|
||||
array& operator=(const array&) = default;
|
||||
array& operator=(array&&) noexcept = default;
|
||||
|
||||
// const raw_array &raw_data() const;
|
||||
|
||||
private:
|
||||
raw_array _array_data;
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& out, const array& arr);
|
||||
|
||||
} // namespace json
|
||||
97
3rdparty/include/meojson/json_aux.h
vendored
@@ -1,97 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "json_value.h"
|
||||
|
||||
namespace json
|
||||
{
|
||||
static std::string unescape_string(std::string&& str)
|
||||
{
|
||||
std::string replace_str;
|
||||
std::string escape_str = std::move(str);
|
||||
|
||||
for (size_t pos = 0; pos < escape_str.size(); ++pos)
|
||||
{
|
||||
switch (escape_str[pos]) {
|
||||
case '\"':
|
||||
replace_str = R"(\")";
|
||||
break;
|
||||
case '\\':
|
||||
replace_str = R"(\\)";
|
||||
break;
|
||||
case '\b':
|
||||
replace_str = R"(\b)";
|
||||
break;
|
||||
case '\f':
|
||||
replace_str = R"(\f)";
|
||||
break;
|
||||
case '\n':
|
||||
replace_str = R"(\n)";
|
||||
break;
|
||||
case '\r':
|
||||
replace_str = R"(\r)";
|
||||
break;
|
||||
case '\t':
|
||||
replace_str = R"(\t)";
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
escape_str.replace(pos, 1, replace_str);
|
||||
++pos;
|
||||
}
|
||||
return escape_str;
|
||||
}
|
||||
|
||||
static std::string unescape_string(const std::string& str)
|
||||
{
|
||||
return unescape_string(std::string(str));
|
||||
}
|
||||
|
||||
static std::string escape_string(std::string&& str)
|
||||
{
|
||||
std::string escape_str = std::move(str);
|
||||
|
||||
for (size_t pos = 0; pos + 1 < escape_str.size(); ++pos)
|
||||
{
|
||||
if (escape_str[pos] != '\\') {
|
||||
continue;
|
||||
}
|
||||
std::string replace_str;
|
||||
switch (escape_str[pos + 1]) {
|
||||
case '"':
|
||||
replace_str = "\"";
|
||||
break;
|
||||
case '\\':
|
||||
replace_str = "\\";
|
||||
break;
|
||||
case 'b':
|
||||
replace_str = "\b";
|
||||
break;
|
||||
case 'f':
|
||||
replace_str = "\f";
|
||||
break;
|
||||
case 'n':
|
||||
replace_str = "\n";
|
||||
break;
|
||||
case 'r':
|
||||
replace_str = "\r";
|
||||
break;
|
||||
case 't':
|
||||
replace_str = "\t";
|
||||
break;
|
||||
default:
|
||||
return std::string();
|
||||
break;
|
||||
}
|
||||
escape_str.replace(pos, 2, replace_str);
|
||||
}
|
||||
return escape_str;
|
||||
}
|
||||
|
||||
static std::string escape_string(const std::string& str)
|
||||
{
|
||||
return escape_string(std::string(str));
|
||||
}
|
||||
}
|
||||
27
3rdparty/include/meojson/json_exception.h
vendored
@@ -1,27 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <exception>
|
||||
#include <string>
|
||||
|
||||
namespace json
|
||||
{
|
||||
class exception : public std::exception
|
||||
{
|
||||
public:
|
||||
exception() = default;
|
||||
exception(const std::string& msg);
|
||||
|
||||
exception(const exception&) = default;
|
||||
exception& operator=(const exception&) = default;
|
||||
exception(exception&&) = default;
|
||||
exception& operator=(exception&&) = default;
|
||||
|
||||
virtual ~exception() noexcept override = default;
|
||||
|
||||
virtual const char* what() const noexcept override;
|
||||
|
||||
private:
|
||||
std::string m_msg;
|
||||
};
|
||||
|
||||
} // namespace json
|
||||
88
3rdparty/include/meojson/json_object.h
vendored
@@ -1,88 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <initializer_list>
|
||||
|
||||
#include "json_value.h"
|
||||
|
||||
namespace json
|
||||
{
|
||||
class object
|
||||
{
|
||||
public:
|
||||
using raw_object = std::unordered_map<std::string, value>;
|
||||
using iterator = raw_object::iterator;
|
||||
using const_iterator = raw_object::const_iterator;
|
||||
|
||||
object() = default;
|
||||
object(const object& rhs) = default;
|
||||
object(object&& rhs) = default;
|
||||
object(const raw_object& raw_obj);
|
||||
object(raw_object&& raw_obj);
|
||||
object(std::initializer_list<raw_object::value_type> init_list);
|
||||
template<typename MapType>
|
||||
object(MapType map) {
|
||||
static_assert(
|
||||
std::is_constructible<raw_object::value_type, typename MapType::value_type>::value,
|
||||
"Parameter can't be used to construct a json::object::raw_object::value_type");
|
||||
for (auto&& ele : map) {
|
||||
_object_data.emplace(std::move(ele));
|
||||
}
|
||||
}
|
||||
|
||||
~object() = default;
|
||||
|
||||
bool empty() const noexcept { return _object_data.empty(); }
|
||||
size_t size() const noexcept { return _object_data.size(); }
|
||||
bool exist(const std::string& key) const { return _object_data.find(key) != _object_data.cend(); }
|
||||
const value& at(const std::string& key) const;
|
||||
const std::string to_string() const;
|
||||
const std::string format(std::string shift_str = " ", size_t basic_shift_count = 0) const;
|
||||
|
||||
const bool get(const std::string& key, bool default_value) const;
|
||||
const int get(const std::string& key, int default_value) const;
|
||||
const long get(const std::string& key, long default_value) const;
|
||||
const unsigned long get(const std::string& key, unsigned default_value) const;
|
||||
const long long get(const std::string& key, long long default_value) const;
|
||||
const unsigned long long get(const std::string& key, unsigned long long default_value) const;
|
||||
const float get(const std::string& key, float default_value) const;
|
||||
const double get(const std::string& key, double default_value) const;
|
||||
const long double get(const std::string& key, long double default_value) const;
|
||||
const std::string get(const std::string& key, std::string default_value) const;
|
||||
const std::string get(const std::string& key, const char* default_value) const;
|
||||
|
||||
template <typename... Args>
|
||||
decltype(auto) emplace(Args &&... args)
|
||||
{
|
||||
static_assert(
|
||||
std::is_constructible<raw_object::value_type, Args...>::value,
|
||||
"Parameter can't be used to construct a raw_object::value_type");
|
||||
return _object_data.emplace(std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
void clear() noexcept;
|
||||
bool earse(const std::string& key);
|
||||
|
||||
iterator begin() noexcept;
|
||||
iterator end() noexcept;
|
||||
const_iterator begin() const noexcept;
|
||||
const_iterator end() const noexcept;
|
||||
const_iterator cbegin() const noexcept;
|
||||
const_iterator cend() const noexcept;
|
||||
|
||||
value& operator[](const std::string& key);
|
||||
value& operator[](std::string&& key);
|
||||
|
||||
object& operator=(const object&) = default;
|
||||
object& operator=(object&&) = default;
|
||||
|
||||
// const raw_object &raw_data() const;
|
||||
|
||||
private:
|
||||
raw_object _object_data;
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& out, const json::object& obj);
|
||||
|
||||
} // namespace json
|
||||
50
3rdparty/include/meojson/json_parser.h
vendored
@@ -1,50 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <optional>
|
||||
|
||||
namespace json
|
||||
{
|
||||
class value;
|
||||
class object;
|
||||
class array;
|
||||
enum class value_type : char;
|
||||
|
||||
class parser
|
||||
{
|
||||
public:
|
||||
~parser() noexcept = default;
|
||||
|
||||
static std::optional<value> parse(const std::string& content);
|
||||
|
||||
private:
|
||||
parser(
|
||||
const std::string::const_iterator& cbegin,
|
||||
const std::string::const_iterator& cend) noexcept
|
||||
: _cur(cbegin), _end(cend) {}
|
||||
|
||||
std::optional<value> parse();
|
||||
value parse_value();
|
||||
|
||||
value parse_null();
|
||||
value parse_boolean();
|
||||
value parse_number();
|
||||
// parse and return a json::value whose type is value_type::String
|
||||
value parse_string();
|
||||
value parse_array();
|
||||
value parse_object();
|
||||
|
||||
// parse and return a std::string
|
||||
std::optional<std::string> parse_stdstring();
|
||||
|
||||
bool skip_whitespace() noexcept;
|
||||
bool skip_digit() noexcept;
|
||||
|
||||
private:
|
||||
std::string::const_iterator _cur;
|
||||
std::string::const_iterator _end;
|
||||
};
|
||||
|
||||
std::optional<value> parse(const std::string& content);
|
||||
|
||||
} // namespace json
|
||||
160
3rdparty/include/meojson/json_value.h
vendored
@@ -1,160 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <ostream>
|
||||
// #include <iostream>
|
||||
#include <memory>
|
||||
|
||||
namespace json
|
||||
{
|
||||
enum class value_type : char
|
||||
{
|
||||
Invalid,
|
||||
Null,
|
||||
Boolean,
|
||||
String,
|
||||
Number,
|
||||
Array,
|
||||
Object,
|
||||
NUM_T
|
||||
};
|
||||
|
||||
class array;
|
||||
class object;
|
||||
|
||||
class value
|
||||
{
|
||||
using unique_array = std::unique_ptr<array>;
|
||||
using unique_object = std::unique_ptr<object>;
|
||||
|
||||
public:
|
||||
value();
|
||||
value(const value& rhs);
|
||||
value(value&& rhs) noexcept;
|
||||
|
||||
value(bool b);
|
||||
|
||||
value(int num);
|
||||
value(unsigned num);
|
||||
value(long num);
|
||||
value(unsigned long num);
|
||||
value(long long num);
|
||||
value(unsigned long long num);
|
||||
value(float num);
|
||||
value(double num);
|
||||
value(long double num);
|
||||
|
||||
value(const char* str);
|
||||
value(const std::string& str);
|
||||
value(std::string&& str);
|
||||
|
||||
value(const array& arr);
|
||||
value(array&& arr);
|
||||
// value(std::initializer_list<value> init_list); // for array
|
||||
|
||||
value(const object& obj);
|
||||
value(object&& obj);
|
||||
// error: conversion from ‘<brace-enclosed initializer list>’ to ‘json::value’ is ambiguous
|
||||
// value(std::initializer_list<std::pair<std::string, value>> init_list); // for object
|
||||
|
||||
// Constructed from raw data
|
||||
template <typename... Args>
|
||||
value(value_type type, Args &&...args)
|
||||
: _type(type),
|
||||
_raw_data(std::forward<Args>(args)...)
|
||||
{
|
||||
static_assert(
|
||||
std::is_constructible<std::string, Args...>::value,
|
||||
"Parameter can't be used to construct a std::string");
|
||||
}
|
||||
|
||||
// Prohibit conversion of other types to value
|
||||
template <typename T>
|
||||
value(T) = delete;
|
||||
|
||||
~value();
|
||||
|
||||
bool valid() const noexcept { return _type != value_type::Invalid ? true : false; }
|
||||
bool empty() const noexcept { return (_type == value_type::Null && _raw_data.compare("null") == 0) ? true : false; }
|
||||
bool is_null() const noexcept { return empty(); }
|
||||
bool is_number() const noexcept { return _type == value_type::Number; }
|
||||
bool is_boolean() const noexcept { return _type == value_type::Boolean; }
|
||||
bool is_string() const noexcept { return _type == value_type::String; }
|
||||
bool is_array() const noexcept { return _type == value_type::Array; }
|
||||
bool is_object() const noexcept { return _type == value_type::Object; }
|
||||
bool exist(const std::string& key) const;
|
||||
bool exist(size_t pos) const;
|
||||
value_type type() const noexcept { return _type; }
|
||||
const value& at(size_t pos) const;
|
||||
const value& at(const std::string& key) const;
|
||||
|
||||
template <typename Type>
|
||||
decltype(auto) get(const std::string& key, Type default_value) const
|
||||
{
|
||||
return is_object() ? as_object().get(key, default_value) : default_value;
|
||||
}
|
||||
template <typename Type>
|
||||
decltype(auto) get(size_t pos, Type default_value) const
|
||||
{
|
||||
return is_array() ? as_array().get(pos, default_value) : default_value;
|
||||
}
|
||||
|
||||
const bool as_boolean() const;
|
||||
const int as_integer() const;
|
||||
// const unsigned as_unsigned() const;
|
||||
const long as_long() const;
|
||||
const unsigned long as_unsigned_long() const;
|
||||
const long long as_long_long() const;
|
||||
const unsigned long long as_unsigned_long_long() const;
|
||||
const float as_float() const;
|
||||
const double as_double() const;
|
||||
const long double as_long_double() const;
|
||||
const std::string as_string() const;
|
||||
const array& as_array() const;
|
||||
const object& as_object() const;
|
||||
|
||||
array& as_array();
|
||||
object& as_object();
|
||||
|
||||
// return raw string
|
||||
const std::string to_string() const;
|
||||
const std::string format(std::string shift_str = " ", size_t basic_shift_count = 0) const;
|
||||
|
||||
value& operator=(const value& rhs);
|
||||
value& operator=(value&&) noexcept;
|
||||
|
||||
const value& operator[](size_t pos) const;
|
||||
value& operator[](size_t pos);
|
||||
value& operator[](const std::string& key);
|
||||
value& operator[](std::string&& key);
|
||||
//explicit operator bool() const noexcept { return valid(); }
|
||||
|
||||
explicit operator bool() const { return as_boolean(); }
|
||||
explicit operator int() const { return as_integer(); }
|
||||
explicit operator long() const { return as_long(); }
|
||||
explicit operator unsigned long() const { return as_unsigned_long(); }
|
||||
explicit operator long long() const { return as_long_long(); }
|
||||
explicit operator unsigned long long() const { return as_unsigned_long_long(); }
|
||||
explicit operator float() const { return as_float(); }
|
||||
explicit operator double() const { return as_double(); }
|
||||
explicit operator long double() const { return as_long_double(); }
|
||||
explicit operator std::string() const { return as_string(); }
|
||||
|
||||
private:
|
||||
template <typename T>
|
||||
static std::unique_ptr<T> copy_unique_ptr(const std::unique_ptr<T>& t)
|
||||
{
|
||||
return t == nullptr ? nullptr : std::make_unique<T>(*t);
|
||||
}
|
||||
|
||||
value_type _type = value_type::Null;
|
||||
std::string _raw_data = "null"; // If the value_type is Object or Array, the _raw_data will be a empty string.
|
||||
unique_array _array_ptr;
|
||||
unique_object _object_ptr;
|
||||
};
|
||||
|
||||
const value invalid_value();
|
||||
std::ostream& operator<<(std::ostream& out, const value& val);
|
||||
// std::istream &operator>>(std::istream &in, value &val);
|
||||
|
||||
} // namespace json
|
||||
@@ -1,19 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "port.h"
|
||||
|
||||
typedef unsigned char uint8_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
PENGUINAPI_PORT const char* PENGUIN_CALL get_info();
|
||||
void PENGUINAPI load_server(const char* server);
|
||||
void PENGUINAPI load_json(const char* stage_index, const char* hash_index);
|
||||
void PENGUINAPI load_templ(const char* itemId, const uint8_t* buffer, size_t size);
|
||||
PENGUINAPI_PORT const char* PENGUIN_CALL recognize(const uint8_t* buffer, size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
37
3rdparty/include/penguin-stats-recognize/port.h
vendored
@@ -1,37 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// The way how the function is called
|
||||
#if !defined(PENGUIN_CALL)
|
||||
#if defined(_WIN32)
|
||||
#define PENGUIN_CALL __stdcall
|
||||
#else
|
||||
#define PENGUIN_CALL
|
||||
#endif /* _WIN32 */
|
||||
#endif /* PENGUIN_CALL */
|
||||
|
||||
// The function exported symbols
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#define PENGUIN_DLL_IMPORT __declspec(dllimport)
|
||||
#define PENGUIN_DLL_EXPORT __declspec(dllexport)
|
||||
#define PENGUIN_DLL_LOCAL
|
||||
#else
|
||||
#if __GNUC__ >= 4
|
||||
#define PENGUIN_DLL_IMPORT __attribute__ ((visibility ("default")))
|
||||
#define PENGUIN_DLL_EXPORT __attribute__ ((visibility ("default")))
|
||||
#define PENGUIN_DLL_LOCAL __attribute__ ((visibility ("hidden")))
|
||||
#else
|
||||
#define PENGUIN_DLL_IMPORT
|
||||
#define PENGUIN_DLL_EXPORT
|
||||
#define PENGUIN_DLL_LOCAL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef PENGUIN_DLL_EXPORTS // defined if we are building the DLL (instead of using it)
|
||||
#define PENGUINAPI_PORT PENGUIN_DLL_EXPORT
|
||||
#else
|
||||
#define PENGUINAPI_PORT PENGUIN_DLL_IMPORT
|
||||
#endif // PENGUIN_DLL_EXPORTS
|
||||
|
||||
#define PENGUINAPI PENGUINAPI_PORT PENGUIN_CALL
|
||||
|
||||
#define PENGUINLOCAL PENGUIN_DLL_LOCAL PENGUIN_CALL
|
||||
5
3rdparty/include/zlib/config.hpp
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef ZLIB_CONST
|
||||
#define ZLIB_CONST
|
||||
#endif
|
||||
99
3rdparty/include/zlib/decompress.hpp
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
#include "config.hpp"
|
||||
|
||||
// std
|
||||
#include <limits>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
namespace gzip
|
||||
{
|
||||
// zlib
|
||||
#include "zlib.h"
|
||||
|
||||
class Decompressor
|
||||
{
|
||||
std::size_t max_;
|
||||
|
||||
public:
|
||||
Decompressor(std::size_t max_bytes = 1000000000) // by default refuse operation if compressed data is > 1GB
|
||||
: max_(max_bytes)
|
||||
{}
|
||||
|
||||
template <typename OutputType>
|
||||
void decompress(OutputType& output,
|
||||
const uchar* data,
|
||||
std::size_t size) const
|
||||
{
|
||||
z_stream inflate_s;
|
||||
|
||||
inflate_s.zalloc = Z_NULL;
|
||||
inflate_s.zfree = Z_NULL;
|
||||
inflate_s.opaque = Z_NULL;
|
||||
inflate_s.avail_in = 0;
|
||||
inflate_s.next_in = Z_NULL;
|
||||
|
||||
// The windowBits parameter is the base two logarithm of the window size (the size of the history buffer).
|
||||
// It should be in the range 8..15 for this version of the library.
|
||||
// Larger values of this parameter result in better compression at the expense of memory usage.
|
||||
// This range of values also changes the decoding type:
|
||||
// -8 to -15 for raw deflate
|
||||
// 8 to 15 for zlib
|
||||
// (8 to 15) + 16 for gzip
|
||||
// (8 to 15) + 32 to automatically detect gzip/zlib header
|
||||
constexpr int window_bits = 15 + 32; // auto with windowbits of 15
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||
if (inflateInit2(&inflate_s, window_bits) != Z_OK) {
|
||||
throw std::runtime_error("inflate init failed");
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
inflate_s.next_in = reinterpret_cast<z_const Bytef*>(data);
|
||||
|
||||
#ifdef DEBUG
|
||||
// Verify if size (long type) input will fit into unsigned int, type used for zlib's avail_in
|
||||
std::uint64_t size_64 = size * 2;
|
||||
if (size_64 > std::numeric_limits<unsigned int>::max()) {
|
||||
inflateEnd(&inflate_s);
|
||||
throw std::runtime_error("size arg is too large to fit into unsigned int type x2");
|
||||
}
|
||||
#endif
|
||||
if (size > max_ || (size * 2) > max_) {
|
||||
inflateEnd(&inflate_s);
|
||||
throw std::runtime_error("size may use more memory than intended when decompressing");
|
||||
}
|
||||
inflate_s.avail_in = static_cast<unsigned int>(size);
|
||||
std::size_t size_uncompressed = 0;
|
||||
do {
|
||||
std::size_t resize_to = size_uncompressed + 2 * size;
|
||||
if (resize_to > max_) {
|
||||
inflateEnd(&inflate_s);
|
||||
throw std::runtime_error("size of output string will use more memory then intended when decompressing");
|
||||
}
|
||||
output.resize(resize_to);
|
||||
inflate_s.avail_out = static_cast<unsigned int>(2 * size);
|
||||
inflate_s.next_out = reinterpret_cast<Bytef*>(&output[0] + size_uncompressed);
|
||||
int ret = inflate(&inflate_s, Z_FINISH);
|
||||
if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) {
|
||||
std::string error_msg = inflate_s.msg;
|
||||
inflateEnd(&inflate_s);
|
||||
//throw std::runtime_error(error_msg);
|
||||
output.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
size_uncompressed += (2 * size - inflate_s.avail_out);
|
||||
} while (inflate_s.avail_out == 0);
|
||||
inflateEnd(&inflate_s);
|
||||
output.resize(size_uncompressed);
|
||||
}
|
||||
};
|
||||
|
||||
inline std::vector<uchar> decompress(const uchar* data, std::size_t size)
|
||||
{
|
||||
Decompressor decomp;
|
||||
std::vector<uchar> output;
|
||||
decomp.decompress(output, data, size);
|
||||
return output;
|
||||
}
|
||||
} // namespace gzip
|
||||
536
3rdparty/include/zlib/zconf.h
vendored
Normal file
@@ -0,0 +1,536 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
/* #undef Z_PREFIX */
|
||||
/* #undef Z_HAVE_UNISTD_H */
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
* Even better than compiling with -DZ_PREFIX would be to use configure to set
|
||||
* this permanently in zconf.h using "./configure --zprefix".
|
||||
*/
|
||||
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
|
||||
# define Z_PREFIX_SET
|
||||
|
||||
/* all linked symbols and init macros */
|
||||
# define _dist_code z__dist_code
|
||||
# define _length_code z__length_code
|
||||
# define _tr_align z__tr_align
|
||||
# define _tr_flush_bits z__tr_flush_bits
|
||||
# define _tr_flush_block z__tr_flush_block
|
||||
# define _tr_init z__tr_init
|
||||
# define _tr_stored_block z__tr_stored_block
|
||||
# define _tr_tally z__tr_tally
|
||||
# define adler32 z_adler32
|
||||
# define adler32_combine z_adler32_combine
|
||||
# define adler32_combine64 z_adler32_combine64
|
||||
# define adler32_z z_adler32_z
|
||||
# ifndef Z_SOLO
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define compressBound z_compressBound
|
||||
# endif
|
||||
# define crc32 z_crc32
|
||||
# define crc32_combine z_crc32_combine
|
||||
# define crc32_combine64 z_crc32_combine64
|
||||
# define crc32_z z_crc32_z
|
||||
# define deflate z_deflate
|
||||
# define deflateBound z_deflateBound
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define deflateGetDictionary z_deflateGetDictionary
|
||||
# define deflateInit z_deflateInit
|
||||
# define deflateInit2 z_deflateInit2
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflateParams z_deflateParams
|
||||
# define deflatePending z_deflatePending
|
||||
# define deflatePrime z_deflatePrime
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateResetKeep z_deflateResetKeep
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateSetHeader z_deflateSetHeader
|
||||
# define deflateTune z_deflateTune
|
||||
# define deflate_copyright z_deflate_copyright
|
||||
# define get_crc_table z_get_crc_table
|
||||
# ifndef Z_SOLO
|
||||
# define gz_error z_gz_error
|
||||
# define gz_intmax z_gz_intmax
|
||||
# define gz_strwinerror z_gz_strwinerror
|
||||
# define gzbuffer z_gzbuffer
|
||||
# define gzclearerr z_gzclearerr
|
||||
# define gzclose z_gzclose
|
||||
# define gzclose_r z_gzclose_r
|
||||
# define gzclose_w z_gzclose_w
|
||||
# define gzdirect z_gzdirect
|
||||
# define gzdopen z_gzdopen
|
||||
# define gzeof z_gzeof
|
||||
# define gzerror z_gzerror
|
||||
# define gzflush z_gzflush
|
||||
# define gzfread z_gzfread
|
||||
# define gzfwrite z_gzfwrite
|
||||
# define gzgetc z_gzgetc
|
||||
# define gzgetc_ z_gzgetc_
|
||||
# define gzgets z_gzgets
|
||||
# define gzoffset z_gzoffset
|
||||
# define gzoffset64 z_gzoffset64
|
||||
# define gzopen z_gzopen
|
||||
# define gzopen64 z_gzopen64
|
||||
# ifdef _WIN32
|
||||
# define gzopen_w z_gzopen_w
|
||||
# endif
|
||||
# define gzprintf z_gzprintf
|
||||
# define gzputc z_gzputc
|
||||
# define gzputs z_gzputs
|
||||
# define gzread z_gzread
|
||||
# define gzrewind z_gzrewind
|
||||
# define gzseek z_gzseek
|
||||
# define gzseek64 z_gzseek64
|
||||
# define gzsetparams z_gzsetparams
|
||||
# define gztell z_gztell
|
||||
# define gztell64 z_gztell64
|
||||
# define gzungetc z_gzungetc
|
||||
# define gzvprintf z_gzvprintf
|
||||
# define gzwrite z_gzwrite
|
||||
# endif
|
||||
# define inflate z_inflate
|
||||
# define inflateBack z_inflateBack
|
||||
# define inflateBackEnd z_inflateBackEnd
|
||||
# define inflateBackInit z_inflateBackInit
|
||||
# define inflateBackInit_ z_inflateBackInit_
|
||||
# define inflateCodesUsed z_inflateCodesUsed
|
||||
# define inflateCopy z_inflateCopy
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define inflateGetDictionary z_inflateGetDictionary
|
||||
# define inflateGetHeader z_inflateGetHeader
|
||||
# define inflateInit z_inflateInit
|
||||
# define inflateInit2 z_inflateInit2
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflateMark z_inflateMark
|
||||
# define inflatePrime z_inflatePrime
|
||||
# define inflateReset z_inflateReset
|
||||
# define inflateReset2 z_inflateReset2
|
||||
# define inflateResetKeep z_inflateResetKeep
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateUndermine z_inflateUndermine
|
||||
# define inflateValidate z_inflateValidate
|
||||
# define inflate_copyright z_inflate_copyright
|
||||
# define inflate_fast z_inflate_fast
|
||||
# define inflate_table z_inflate_table
|
||||
# ifndef Z_SOLO
|
||||
# define uncompress z_uncompress
|
||||
# define uncompress2 z_uncompress2
|
||||
# endif
|
||||
# define zError z_zError
|
||||
# ifndef Z_SOLO
|
||||
# define zcalloc z_zcalloc
|
||||
# define zcfree z_zcfree
|
||||
# endif
|
||||
# define zlibCompileFlags z_zlibCompileFlags
|
||||
# define zlibVersion z_zlibVersion
|
||||
|
||||
/* all zlib typedefs in zlib.h and zconf.h */
|
||||
# define Byte z_Byte
|
||||
# define Bytef z_Bytef
|
||||
# define alloc_func z_alloc_func
|
||||
# define charf z_charf
|
||||
# define free_func z_free_func
|
||||
# ifndef Z_SOLO
|
||||
# define gzFile z_gzFile
|
||||
# endif
|
||||
# define gz_header z_gz_header
|
||||
# define gz_headerp z_gz_headerp
|
||||
# define in_func z_in_func
|
||||
# define intf z_intf
|
||||
# define out_func z_out_func
|
||||
# define uInt z_uInt
|
||||
# define uIntf z_uIntf
|
||||
# define uLong z_uLong
|
||||
# define uLongf z_uLongf
|
||||
# define voidp z_voidp
|
||||
# define voidpc z_voidpc
|
||||
# define voidpf z_voidpf
|
||||
|
||||
/* all zlib structs in zlib.h and zconf.h */
|
||||
# define gz_header_s z_gz_header_s
|
||||
# define internal_state z_internal_state
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
|
||||
# define OS2
|
||||
#endif
|
||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||
# define WINDOWS
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||
# ifndef WIN32
|
||||
# define WIN32
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||
# ifndef SYS16BIT
|
||||
# define SYS16BIT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
# ifndef STDC99
|
||||
# define STDC99
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const /* note: need a more gentle solution here */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(ZLIB_CONST) && !defined(z_const)
|
||||
# define z_const const
|
||||
#else
|
||||
# define z_const
|
||||
#endif
|
||||
|
||||
#ifdef Z_SOLO
|
||||
typedef unsigned long z_size_t;
|
||||
#else
|
||||
# define z_longlong long long
|
||||
# if defined(NO_SIZE_T)
|
||||
typedef unsigned NO_SIZE_T z_size_t;
|
||||
# elif defined(STDC)
|
||||
# include <stddef.h>
|
||||
typedef size_t z_size_t;
|
||||
# else
|
||||
typedef unsigned long z_size_t;
|
||||
# endif
|
||||
# undef z_longlong
|
||||
#endif
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
# define MAX_MEM_LEVEL 8
|
||||
# else
|
||||
# define MAX_MEM_LEVEL 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# ifdef STDC
|
||||
# define OF(args) args
|
||||
# else
|
||||
# define OF(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef Z_ARG /* function prototypes for stdarg */
|
||||
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# define Z_ARG(args) args
|
||||
# else
|
||||
# define Z_ARG(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#ifdef SYS16BIT
|
||||
# if defined(M_I86SM) || defined(M_I86MM)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
# if (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
/* Turbo C small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef __BORLANDC__
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(WINDOWS) || defined(WIN32)
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
# ifdef ZLIB_DLL
|
||||
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# endif /* ZLIB_DLL */
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
# ifdef ZLIB_WINAPI
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR CDECL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# ifdef ZLIB_DLL
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXPORT __declspec(dllexport)
|
||||
# define ZEXPORTVA __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXPORT __declspec(dllimport)
|
||||
# define ZEXPORTVA __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(__MACTYPES__)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
#ifdef SMALL_MEDIUM
|
||||
/* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
|
||||
# define Bytef Byte FAR
|
||||
#else
|
||||
typedef Byte FAR Bytef;
|
||||
#endif
|
||||
typedef char FAR charf;
|
||||
typedef int FAR intf;
|
||||
typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void const *voidpc;
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte const *voidpc;
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
|
||||
# include <limits.h>
|
||||
# if (UINT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned
|
||||
# elif (ULONG_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned long
|
||||
# elif (USHRT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned short
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef Z_U4
|
||||
typedef Z_U4 z_crc_t;
|
||||
#else
|
||||
typedef unsigned long z_crc_t;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_STDARG_H
|
||||
#endif
|
||||
|
||||
#ifdef STDC
|
||||
# ifndef Z_SOLO
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# ifndef Z_SOLO
|
||||
# include <stdarg.h> /* for va_list */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef Z_SOLO
|
||||
# include <stddef.h> /* for wchar_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
|
||||
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
|
||||
* though the former does not conform to the LFS document), but considering
|
||||
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
|
||||
* equivalently requesting no 64-bit operations
|
||||
*/
|
||||
#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
#ifndef Z_SOLO
|
||||
# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
|
||||
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
|
||||
# ifdef VMS
|
||||
# include <unixio.h> /* for off_t */
|
||||
# endif
|
||||
# ifndef z_off_t
|
||||
# define z_off_t off_t
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
|
||||
# define Z_LFS64
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
|
||||
# define Z_LARGE64
|
||||
#endif
|
||||
|
||||
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
|
||||
# define Z_WANT64
|
||||
#endif
|
||||
|
||||
#if !defined(SEEK_SET) && !defined(Z_SOLO)
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && defined(Z_LARGE64)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
#pragma map(deflateInit_,"DEIN")
|
||||
#pragma map(deflateInit2_,"DEIN2")
|
||||
#pragma map(deflateEnd,"DEEND")
|
||||
#pragma map(deflateBound,"DEBND")
|
||||
#pragma map(inflateInit_,"ININ")
|
||||
#pragma map(inflateInit2_,"ININ2")
|
||||
#pragma map(inflateEnd,"INEND")
|
||||
#pragma map(inflateSync,"INSY")
|
||||
#pragma map(inflateSetDictionary,"INSEDI")
|
||||
#pragma map(compressBound,"CMBND")
|
||||
#pragma map(inflate_table,"INTABL")
|
||||
#pragma map(inflate_fast,"INFA")
|
||||
#pragma map(inflate_copyright,"INCOPY")
|
||||
#endif
|
||||
|
||||
#endif /* ZCONF_H */
|
||||
1912
3rdparty/include/zlib/zlib.h
vendored
Normal file
BIN
3rdparty/lib/libmeojson.lib
vendored
BIN
3rdparty/lib/penguin-stats-recognize.lib
vendored
BIN
3rdparty/lib/ppocr.lib
vendored
BIN
3rdparty/lib/zlibstatic.lib
vendored
Normal file
BIN
3rdparty/ppocr_noavx.zip
vendored
Normal file
589935
3rdparty/resource/Arknights-Tile-Pos/levels.json
vendored
Normal file
BIN
3rdparty/resource/PaddleOCR/det/inference.pdiparams
vendored
BIN
3rdparty/resource/PaddleOCR/det/inference.pdmodel
vendored
1
3rdparty/resource/PaddleOCR/det/version.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ch_PP-OCRv2_det_infer
|
||||
BIN
3rdparty/resource/PaddleOCR/rec/inference.pdiparams
vendored
BIN
3rdparty/resource/PaddleOCR/rec/inference.pdmodel
vendored
1
3rdparty/resource/PaddleOCR/rec/version.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ch_ppocr_mobile_v2.0_rec_slim_infer
|
||||
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |