mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
Compare commits
2119 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b49f76700 | ||
|
|
ad6fa1ac25 | ||
|
|
a271d322e2 | ||
|
|
b84bd22bbf | ||
|
|
0cd19d99a4 | ||
|
|
db46ed7f3f | ||
|
|
952837766d | ||
|
|
abe1b22d41 | ||
|
|
93545cfbc8 | ||
|
|
0ec6852cfb | ||
|
|
ebb33be3c3 | ||
|
|
47b8585e4e | ||
|
|
bfd52adf33 | ||
|
|
32c1cae961 | ||
|
|
7bed50c205 | ||
|
|
c0617a38d6 | ||
|
|
ff8f11a1b7 | ||
|
|
6b2e69a687 | ||
|
|
9da339ebf8 | ||
|
|
a980b27826 | ||
|
|
59fcd64fd8 | ||
|
|
087ed8b5d9 | ||
|
|
4f5b0e60ea | ||
|
|
33d5f76317 | ||
|
|
44113897d3 | ||
|
|
0a63089c38 | ||
|
|
7e02e4ff3f | ||
|
|
c125f5bb0a | ||
|
|
7bf883d61b | ||
|
|
00faafed96 | ||
|
|
4081daff9c | ||
|
|
dff952a88b | ||
|
|
cf658a4b98 | ||
|
|
d8510b7820 | ||
|
|
f39b25611e | ||
|
|
5507e1855d | ||
|
|
6943588a82 | ||
|
|
3bc7e95597 | ||
|
|
47a8e57e73 | ||
|
|
b342916521 | ||
|
|
a973ead642 | ||
|
|
1f5ad605bc | ||
|
|
711d71329f | ||
|
|
1772d6700d | ||
|
|
2b0d8189cd | ||
|
|
1e87a9b2e7 | ||
|
|
bbb17aa653 | ||
|
|
102eb9d462 | ||
|
|
4b96361fcb | ||
|
|
fcbe40c5d2 | ||
|
|
224f4e065b | ||
|
|
8ce433c4d5 | ||
|
|
bfa8a806ee | ||
|
|
6ef2db0fc0 | ||
|
|
f5ee81a3bb | ||
|
|
24fdb086d8 | ||
|
|
86a282ecd0 | ||
|
|
60b8d8d64e | ||
|
|
6541c72db9 | ||
|
|
66ab01fe46 | ||
|
|
6cfd337b8e | ||
|
|
835a750a72 | ||
|
|
2db8434340 | ||
|
|
67341f4d68 | ||
|
|
fe9a039060 | ||
|
|
51a81fdbfd | ||
|
|
527d9c0126 | ||
|
|
170869e18d | ||
|
|
f2c96f1a32 | ||
|
|
0858fe7233 | ||
|
|
fd6b53a2b6 | ||
|
|
a50a47885a | ||
|
|
317a44f274 | ||
|
|
aef21ce894 | ||
|
|
17e61c0dbf | ||
|
|
88f909dd47 | ||
|
|
c369910ce0 | ||
|
|
2b25c16ebf | ||
|
|
0678571263 | ||
|
|
a6a9a54865 | ||
|
|
bc5a30751f | ||
|
|
f05494b2f8 | ||
|
|
9ede5eee5c | ||
|
|
380ca5c51e | ||
|
|
14d079a5b4 | ||
|
|
ee41ab332e | ||
|
|
0c749c82c3 | ||
|
|
8fd23f8f2c | ||
|
|
219b30d71d | ||
|
|
8ff529badc | ||
|
|
d257b1a301 | ||
|
|
7e70f1813d | ||
|
|
840b04bf19 | ||
|
|
90c48fbd0c | ||
|
|
e585f01bf2 | ||
|
|
10547374e3 | ||
|
|
d493cad2a5 | ||
|
|
1c470d8f7a | ||
|
|
ac4f351c9b | ||
|
|
e1123e5c98 | ||
|
|
234662d506 | ||
|
|
37989871e9 | ||
|
|
a97a6563a4 | ||
|
|
35092bf5a4 | ||
|
|
6aca664962 | ||
|
|
aaecbb0453 | ||
|
|
247903a4f9 | ||
|
|
749871392f | ||
|
|
de7cf37106 | ||
|
|
2947830ef6 | ||
|
|
75c22ab8dc | ||
|
|
945ad0f6e9 | ||
|
|
a8602423e4 | ||
|
|
d597dabdc9 | ||
|
|
7438e6ad14 | ||
|
|
3c380c2752 | ||
|
|
b347ea2cfc | ||
|
|
4036e6c907 | ||
|
|
32c96681a6 | ||
|
|
133b42529d | ||
|
|
d615588b4a | ||
|
|
a78c2266d9 | ||
|
|
bcee1acd70 | ||
|
|
ba38b8b244 | ||
|
|
47de672e7e | ||
|
|
5b9ae4f5be | ||
|
|
6ed23c3141 | ||
|
|
58fcfb2b11 | ||
|
|
0559178a40 | ||
|
|
1878c99f7c | ||
|
|
91c21a2fc1 | ||
|
|
a10b9780d9 | ||
|
|
994a85389a | ||
|
|
b8308f4598 | ||
|
|
ab8465c58c | ||
|
|
9ca0856042 | ||
|
|
a2b8e8d87e | ||
|
|
a75b18016b | ||
|
|
9e51e4d5be | ||
|
|
ccc17c5c6b | ||
|
|
1a87b35b07 | ||
|
|
dbbe4e2e42 | ||
|
|
d1010aed68 | ||
|
|
7269a2b135 | ||
|
|
5cc3e61da3 | ||
|
|
0e7f0b6e09 | ||
|
|
4d4faa9e88 | ||
|
|
a7826a7862 | ||
|
|
e1c6051cc5 | ||
|
|
b7bfcc0f9f | ||
|
|
3fdab89e5c | ||
|
|
68aa0b7f1c | ||
|
|
110e0817b8 | ||
|
|
82de7860ef | ||
|
|
7c1e53ff68 | ||
|
|
9605788b61 | ||
|
|
87b6bf9822 | ||
|
|
f70410fd4b | ||
|
|
347c7175f6 | ||
|
|
8139b44992 | ||
|
|
1b8fb39579 | ||
|
|
55afc49936 | ||
|
|
27c325b743 | ||
|
|
ac0c578b52 | ||
|
|
a03409893a | ||
|
|
a2877eb873 | ||
|
|
17cc5fe5e0 | ||
|
|
d8f20e7ccd | ||
|
|
f5e77e2865 | ||
|
|
424e87276d | ||
|
|
d69a7c651c | ||
|
|
8128e0cd57 | ||
|
|
229501ce87 | ||
|
|
60a2b5373a | ||
|
|
e07a1a740c | ||
|
|
940057d0d9 | ||
|
|
edc433a2f3 | ||
|
|
8f13b68e1e | ||
|
|
d6fc0d82c8 | ||
|
|
16d743a7e2 | ||
|
|
bdc7dd7002 | ||
|
|
44779888b3 | ||
|
|
21ff93a019 | ||
|
|
e1cc1268b3 | ||
|
|
26842cf666 | ||
|
|
03593b4452 | ||
|
|
28f6ad1e3e | ||
|
|
db7d02729d | ||
|
|
a48579abde | ||
|
|
ef82f2a53b | ||
|
|
b6e494eca6 | ||
|
|
2707e9ac67 | ||
|
|
9fd263ad9f | ||
|
|
2184219f0f | ||
|
|
8e5d2c529e | ||
|
|
aa767813ca | ||
|
|
c625303729 | ||
|
|
ff18e2a5d2 | ||
|
|
f3246467c6 | ||
|
|
dc9e1963ba | ||
|
|
d97233be30 | ||
|
|
3d194f8d49 | ||
|
|
f335bd7547 | ||
|
|
e1f61e448b | ||
|
|
e7eb3fa6e0 | ||
|
|
0260ace86f | ||
|
|
db5e2af0e3 | ||
|
|
177ba9dd0d | ||
|
|
1bbe5de12c | ||
|
|
a265a20737 | ||
|
|
f365fdad30 | ||
|
|
fa370043b5 | ||
|
|
fa53183381 | ||
|
|
238de80978 | ||
|
|
4603963c16 | ||
|
|
1171973deb | ||
|
|
1832b803ce | ||
|
|
4b68bf3239 | ||
|
|
a77c9570cb | ||
|
|
3b82171f2d | ||
|
|
5c8026d587 | ||
|
|
a322f61ead | ||
|
|
4ed909c791 | ||
|
|
f758aff8c8 | ||
|
|
a3f1ed5fe3 | ||
|
|
d291cabf34 | ||
|
|
32a28ee7f7 | ||
|
|
d56c8b081a | ||
|
|
b7ad59279d | ||
|
|
1151f2021b | ||
|
|
3992e06341 | ||
|
|
ae6887eb8f | ||
|
|
5182b55e2d | ||
|
|
3fcc5ab3a4 | ||
|
|
1930ed1784 | ||
|
|
b6b3662367 | ||
|
|
cbf48f9a18 | ||
|
|
bb3e8db9a5 | ||
|
|
cc48277a98 | ||
|
|
0a98076e88 | ||
|
|
b87edf3a26 | ||
|
|
e3e105c016 | ||
|
|
ac6681ca8b | ||
|
|
a78cb7a7cb | ||
|
|
5416ec288c | ||
|
|
ccf50ef211 | ||
|
|
33adc9b977 | ||
|
|
78c7e67fbe | ||
|
|
7600f55643 | ||
|
|
5e45ed4f04 | ||
|
|
1831fb6d97 | ||
|
|
5410ab6dcc | ||
|
|
61bcbfed36 | ||
|
|
1a65b0806e | ||
|
|
e835834cde | ||
|
|
71050ef7f3 | ||
|
|
8748df5c77 | ||
|
|
d624058e25 | ||
|
|
73bacacd6f | ||
|
|
011b52540d | ||
|
|
3dc0a7bca2 | ||
|
|
828caaac11 | ||
|
|
014e88d74f | ||
|
|
6b2069ebb2 | ||
|
|
348c7fb6c9 | ||
|
|
e0a33149c5 | ||
|
|
284b5b8e9b | ||
|
|
64cf8032d6 | ||
|
|
2a6cf7f498 | ||
|
|
19c03f6c2b | ||
|
|
0554bbd9fa | ||
|
|
4afa2108c5 | ||
|
|
1857146173 | ||
|
|
d3ad8cc86c | ||
|
|
873a461bdf | ||
|
|
e8b2a6cd96 | ||
|
|
cd1dcb5d8e | ||
|
|
48df581e8a | ||
|
|
98ab1807fb | ||
|
|
f5b5fcf2b8 | ||
|
|
0dd8ce6622 | ||
|
|
50c3ddb357 | ||
|
|
41a16e8951 | ||
|
|
9a377e86e9 | ||
|
|
375761493b | ||
|
|
6c56e9f770 | ||
|
|
6072d753e2 | ||
|
|
d45cf723f9 | ||
|
|
d65bc2bbb0 | ||
|
|
aa526355b2 | ||
|
|
d9401f959e | ||
|
|
af20912216 | ||
|
|
3380038435 | ||
|
|
b88448bb7b | ||
|
|
8214ffe4c6 | ||
|
|
63ee8dfafa | ||
|
|
b6143b316c | ||
|
|
fd7322695e | ||
|
|
63988391ef | ||
|
|
0731705733 | ||
|
|
1cb9ed755a | ||
|
|
8897462851 | ||
|
|
10ddceecba | ||
|
|
d3685eaa29 | ||
|
|
bdc62f6cc0 | ||
|
|
2b05199229 | ||
|
|
ccdfa9fec1 | ||
|
|
d595e52be6 | ||
|
|
856cd1c9b9 | ||
|
|
83e88845f2 | ||
|
|
f65658d996 | ||
|
|
d160ef08f6 | ||
|
|
290bf47c77 | ||
|
|
c712670979 | ||
|
|
a95d2c9744 | ||
|
|
dcc1645e54 | ||
|
|
ea35f9d664 | ||
|
|
e2427a9c25 | ||
|
|
c85e0e5791 | ||
|
|
81be6965bb | ||
|
|
df22d6dfdf | ||
|
|
99086ab972 | ||
|
|
1ce53b2fd0 | ||
|
|
6a69e00a85 | ||
|
|
fe416b56cf | ||
|
|
d55d8d41e9 | ||
|
|
1dbb5579f0 | ||
|
|
f1eb14c7e9 | ||
|
|
03b87236bb | ||
|
|
4f71374b27 | ||
|
|
8118c93687 | ||
|
|
579c5cc953 | ||
|
|
b9ff99942d | ||
|
|
a3205cd2ee | ||
|
|
411850b907 | ||
|
|
ccf1e09e34 | ||
|
|
2a181d631d | ||
|
|
0839aa604e | ||
|
|
a5354a65be | ||
|
|
13d99f2ff1 | ||
|
|
c7adcd66b8 | ||
|
|
c2bc79045d | ||
|
|
0354594496 | ||
|
|
96039bd2f4 | ||
|
|
2be191247b | ||
|
|
e5dde95b68 | ||
|
|
253078212d | ||
|
|
a983832d14 | ||
|
|
14cdcd277d | ||
|
|
8e5147d802 | ||
|
|
87e8600c6f | ||
|
|
7ddd96be3d | ||
|
|
6742fa6314 | ||
|
|
3249752e6d | ||
|
|
d9fef261e7 | ||
|
|
93ea049954 | ||
|
|
6a056849d7 | ||
|
|
a6bab8c022 | ||
|
|
f96fa5dd08 | ||
|
|
b5d3fe3b36 | ||
|
|
60d8538d98 | ||
|
|
74fcbaff7e | ||
|
|
98275474f0 | ||
|
|
1dd3a2160d | ||
|
|
42587aaaae | ||
|
|
7973a39fe9 | ||
|
|
a26ad2619d | ||
|
|
02739d2a03 | ||
|
|
ef0911854c | ||
|
|
c432da682b | ||
|
|
98bf155bee | ||
|
|
1841f416af | ||
|
|
d67ef4144f | ||
|
|
0ac4885104 | ||
|
|
40fa9d8bfc | ||
|
|
48fc429153 | ||
|
|
a2c982709a | ||
|
|
4417661f38 | ||
|
|
30af00bd7f | ||
|
|
5950dac4b5 | ||
|
|
245e133042 | ||
|
|
63b9255ba6 | ||
|
|
7b2427f73d | ||
|
|
f0e91f2c67 | ||
|
|
050cdfc777 | ||
|
|
c55362841c | ||
|
|
07ae4323b3 | ||
|
|
166d87e92d | ||
|
|
ccc07b4601 | ||
|
|
f555a7dc90 | ||
|
|
0e98fdb641 | ||
|
|
452da3ffa8 | ||
|
|
210a2c0258 | ||
|
|
da79ee0039 | ||
|
|
e29a23c2ca | ||
|
|
67a3db4ad3 | ||
|
|
a21eeaaf10 | ||
|
|
2804093e1f | ||
|
|
f2556e1228 | ||
|
|
cd4afb0e82 | ||
|
|
8dfc24983d | ||
|
|
802b0aa653 | ||
|
|
ba03c65da8 | ||
|
|
4c27b48a71 | ||
|
|
0389f28eac | ||
|
|
d399f1aec0 | ||
|
|
f777a5eebe | ||
|
|
42d29b1e83 | ||
|
|
377ab20c2e | ||
|
|
c8e9f38574 | ||
|
|
e5dc2fa829 | ||
|
|
899acac204 | ||
|
|
0cda053f42 | ||
|
|
1d6c215d18 | ||
|
|
e5a51412f1 | ||
|
|
e01a1e4a38 | ||
|
|
744ce28fde | ||
|
|
877a8b30d5 | ||
|
|
d09551fa78 | ||
|
|
cc0c522fdd | ||
|
|
13cbe25446 | ||
|
|
7fbc9d0a5d | ||
|
|
4642a4f07d | ||
|
|
08aed634b4 | ||
|
|
6cbaef0527 | ||
|
|
edb7d7959a | ||
|
|
4819f71292 | ||
|
|
9fec5003f7 | ||
|
|
e176d0d548 | ||
|
|
70f2258424 | ||
|
|
978a0aa4ab | ||
|
|
99a3b2a3ac | ||
|
|
0130485ced | ||
|
|
498a960a05 | ||
|
|
a32ff6ec89 | ||
|
|
49178565bb | ||
|
|
a7d11f3bdc | ||
|
|
0a3febc952 | ||
|
|
a5fcebd11b | ||
|
|
27998ef557 | ||
|
|
a7308e1e8f | ||
|
|
9c4172a5df | ||
|
|
e3f16570f9 | ||
|
|
ea577a0199 | ||
|
|
cd911389ec | ||
|
|
50c666afd4 | ||
|
|
838c852ec3 | ||
|
|
6703aeb433 | ||
|
|
39ae927e0d | ||
|
|
cd705fbfb5 | ||
|
|
32cdf6cdb2 | ||
|
|
fa6b54cc4f | ||
|
|
40b6abd1c6 | ||
|
|
e652272def | ||
|
|
0f4979720d | ||
|
|
fc048e9073 | ||
|
|
47ce866a0f | ||
|
|
a593722754 | ||
|
|
dcddb7e2b0 | ||
|
|
8da48148f6 | ||
|
|
41ae8650e6 | ||
|
|
9718be4ccd | ||
|
|
f3c2e1468f | ||
|
|
7f25bd580e | ||
|
|
334f4a0365 | ||
|
|
b260a098c8 | ||
|
|
1bf53b8774 | ||
|
|
e421c3598b | ||
|
|
7fa78a0229 | ||
|
|
aa57ef5cf1 | ||
|
|
d6eeb2eacc | ||
|
|
d4e476c2ff | ||
|
|
d33a54f084 | ||
|
|
a55f214ab4 | ||
|
|
ea0fe640b4 | ||
|
|
edbf884605 | ||
|
|
5befda2a24 | ||
|
|
2b32a2e134 | ||
|
|
f4e6d33a06 | ||
|
|
7bee765d6a | ||
|
|
ca16cc509a | ||
|
|
09c7f833bc | ||
|
|
589868dfb8 | ||
|
|
f3310e7056 | ||
|
|
95a666510d | ||
|
|
1f8dbc4c9c | ||
|
|
de3a50c966 | ||
|
|
e955c97054 | ||
|
|
d297eff715 | ||
|
|
707b12631b | ||
|
|
cfedaeff64 | ||
|
|
ea4048018d | ||
|
|
0c7dcf9f45 | ||
|
|
8c473fdd84 | ||
|
|
a7f2e520cb | ||
|
|
769756864b | ||
|
|
9d8e37854d | ||
|
|
44dd53b5f4 | ||
|
|
bebd4d7411 | ||
|
|
b7e06049dc | ||
|
|
8e52d8235a | ||
|
|
331a44cc32 | ||
|
|
72c4b47d4d | ||
|
|
a958b2fca0 | ||
|
|
64be488c72 | ||
|
|
f2b262ae1b | ||
|
|
b82255f407 | ||
|
|
f08a70b59b | ||
|
|
c15e8ff595 | ||
|
|
7611b9be99 | ||
|
|
d578921431 | ||
|
|
0d38de0e6f | ||
|
|
d712c7991c | ||
|
|
0d37526d22 | ||
|
|
c5cab86ea6 | ||
|
|
aadc27ceb2 | ||
|
|
f46abf9998 | ||
|
|
c7e3be3355 | ||
|
|
95878ef8c9 | ||
|
|
5a6d1fd062 | ||
|
|
8d410c0843 | ||
|
|
f35a3ba324 | ||
|
|
c179e3e73d | ||
|
|
f3d8f9f051 | ||
|
|
8e97edb136 | ||
|
|
d555426ef5 | ||
|
|
a2b0eec03a | ||
|
|
79db662dba | ||
|
|
99821111f4 | ||
|
|
2e13660661 | ||
|
|
fd6bbf93a4 | ||
|
|
de7fab8728 | ||
|
|
f0324d8a03 | ||
|
|
4c533eef7f | ||
|
|
d71c4607fa | ||
|
|
8cb0070b51 | ||
|
|
408951688b | ||
|
|
62b36a812a | ||
|
|
b09abf5924 | ||
|
|
d66af8e660 | ||
|
|
9493803d36 | ||
|
|
d4ddfafdcf | ||
|
|
1f4b7212d1 | ||
|
|
8feb2a57fb | ||
|
|
7f9b031aef | ||
|
|
a8d2dedab2 | ||
|
|
2c3553ef88 | ||
|
|
deb4e15e51 | ||
|
|
e554104cec | ||
|
|
a659053d18 | ||
|
|
ac4416a83c | ||
|
|
bae7c9e8a2 | ||
|
|
ccb40c027d | ||
|
|
3bac18ee52 | ||
|
|
f4ca88a7b0 | ||
|
|
4dd84a7c4d | ||
|
|
e93c4723c7 | ||
|
|
53ca321dae | ||
|
|
54cb31c8e7 | ||
|
|
b84c9e0eda | ||
|
|
e6b534942b | ||
|
|
ef69ba431c | ||
|
|
abaf981450 | ||
|
|
7a6cc0cf0f | ||
|
|
e50b510c0c | ||
|
|
59594e6207 | ||
|
|
c9c5ac5cc8 | ||
|
|
25b9e5f1ff | ||
|
|
79a74a54e7 | ||
|
|
c857be8ce1 | ||
|
|
3a6dffdbd4 | ||
|
|
9abd60430d | ||
|
|
652210fe0b | ||
|
|
d35cd78ce8 | ||
|
|
c61dd2ac07 | ||
|
|
d899dd29f4 | ||
|
|
babc6089b7 | ||
|
|
6b8c818559 | ||
|
|
64d4513bc0 | ||
|
|
dd3537443d | ||
|
|
c30ebf59bd | ||
|
|
30ff284e24 | ||
|
|
6377714c79 | ||
|
|
38e13fbab0 | ||
|
|
7ec9d4259d | ||
|
|
8af0791e2c | ||
|
|
6196211d6f | ||
|
|
e01fc7cadf | ||
|
|
ce0b62678f | ||
|
|
9a6603ca66 | ||
|
|
ac4f69bed7 | ||
|
|
c1716052eb | ||
|
|
57cdbe065b | ||
|
|
2443622964 | ||
|
|
adf7e91c5d | ||
|
|
bacd60f419 | ||
|
|
c5db3d5860 | ||
|
|
4a02bccb9d | ||
|
|
f5b79621d0 | ||
|
|
cfb7e8186d | ||
|
|
a5cb164d9a | ||
|
|
8897760316 | ||
|
|
3dd6f0609c | ||
|
|
125c03f39c | ||
|
|
3b7d066770 | ||
|
|
32460e70ef | ||
|
|
ac79583948 | ||
|
|
b7ab40f545 | ||
|
|
1eef218af2 | ||
|
|
eeffa32cf0 | ||
|
|
89eaea2409 | ||
|
|
bf6719a30f | ||
|
|
207cc63f5b | ||
|
|
2ca863808a | ||
|
|
a11428c495 | ||
|
|
14c94be155 | ||
|
|
e6ade0470d | ||
|
|
0740593f13 | ||
|
|
ad280ba649 | ||
|
|
27432429e0 | ||
|
|
3b50e4600a | ||
|
|
bbf1ecdef2 | ||
|
|
85ef13b14f | ||
|
|
9ccf8010ad | ||
|
|
88410db821 | ||
|
|
a0c8bdaa02 | ||
|
|
129e57debf | ||
|
|
e12d807e37 | ||
|
|
3864aa6aaf | ||
|
|
ad7eaafed5 | ||
|
|
1b1cc79868 | ||
|
|
a2666e8e13 | ||
|
|
cecc0f3c32 | ||
|
|
11521fd4e5 | ||
|
|
dfa516d63e | ||
|
|
90a40515be | ||
|
|
9500e6b078 | ||
|
|
598ee99bbb | ||
|
|
8628ad46eb | ||
|
|
caa86c7639 | ||
|
|
f0dc4eef3e | ||
|
|
9ca5e9dd89 | ||
|
|
7132481c92 | ||
|
|
8e2932ebb4 | ||
|
|
59ed69455c | ||
|
|
e39d7d8990 | ||
|
|
0cb7b820c9 | ||
|
|
9ed7dc9b59 | ||
|
|
d74d2f6a40 | ||
|
|
706930834f | ||
|
|
878aa0bd85 | ||
|
|
05215848a5 | ||
|
|
cf1aa9900e | ||
|
|
b8bad89976 | ||
|
|
7bfb181bda | ||
|
|
b77163ebed | ||
|
|
5933ffbe44 | ||
|
|
3c4d9ec2e9 | ||
|
|
0893ca769b | ||
|
|
29162702a2 | ||
|
|
5e60a59962 | ||
|
|
be266ef7b7 | ||
|
|
0c5e77aea5 | ||
|
|
fd3073eef7 | ||
|
|
23fe562661 | ||
|
|
0ed155b055 | ||
|
|
983a7de986 | ||
|
|
ad4a92eb98 | ||
|
|
abca9c0c20 | ||
|
|
a799e7fa12 | ||
|
|
742838edda | ||
|
|
0993a91255 | ||
|
|
ddc9c32d02 | ||
|
|
b2c1c8a31b | ||
|
|
e1da50c717 | ||
|
|
4aeedc96c2 | ||
|
|
c99f6c0180 | ||
|
|
17a251daaf | ||
|
|
f05f2e2b73 | ||
|
|
d744d7583f | ||
|
|
9a049c0070 | ||
|
|
f8e26888b9 | ||
|
|
4144d78284 | ||
|
|
3c101fedf3 | ||
|
|
cfe60a5644 | ||
|
|
3a7c582daa | ||
|
|
31a27daad2 | ||
|
|
ed25a97a9d | ||
|
|
6e545b86f8 | ||
|
|
1096cbcf95 | ||
|
|
4761be6a44 | ||
|
|
a78504e95c | ||
|
|
86bc053844 | ||
|
|
b4b3fb12e2 | ||
|
|
0429c31788 | ||
|
|
d4d3efe7fb | ||
|
|
7e8c713d45 | ||
|
|
a52a2ed397 | ||
|
|
165d180109 | ||
|
|
304085c992 | ||
|
|
54da140062 | ||
|
|
4ca2e09a2a | ||
|
|
5953d6f697 | ||
|
|
c46961796c | ||
|
|
ff28490e16 | ||
|
|
d29ee63b82 | ||
|
|
9a7daff149 | ||
|
|
f8c2d48a4d | ||
|
|
2e3510f988 | ||
|
|
9cec1113fd | ||
|
|
330514a6c9 | ||
|
|
ca33735cfc | ||
|
|
56dca14a32 | ||
|
|
12ffd3e638 | ||
|
|
7c292ea9b3 | ||
|
|
643432e59f | ||
|
|
bf74eda74f | ||
|
|
c8f8c2d10c | ||
|
|
c32a5a06c4 | ||
|
|
403bca3bad | ||
|
|
1ea74f4d9b | ||
|
|
47b3c55785 | ||
|
|
dea607f0fd | ||
|
|
e9b730bf24 | ||
|
|
6e3a9269f5 | ||
|
|
1cd1f7ac6f | ||
|
|
71e2bb0871 | ||
|
|
f0349e7f1f | ||
|
|
95dac5696e | ||
|
|
9e9f2755a8 | ||
|
|
2de650e60c | ||
|
|
092965a217 | ||
|
|
203fdb8f6c | ||
|
|
f59bff9cdd | ||
|
|
2c14b973a3 | ||
|
|
611faea0a8 | ||
|
|
8de4a1e55a | ||
|
|
a80321d09e | ||
|
|
510485fd14 | ||
|
|
e4785773bf | ||
|
|
040472e043 | ||
|
|
c5e83bc9a0 | ||
|
|
3e002f8765 | ||
|
|
b6c3c7f40a | ||
|
|
ebde99a045 | ||
|
|
561eb194e0 | ||
|
|
8a1d41b7f1 | ||
|
|
c7f655e466 | ||
|
|
ee8a7c224e | ||
|
|
42b9614365 | ||
|
|
3a04755562 | ||
|
|
67784145f3 | ||
|
|
5e478bfd83 | ||
|
|
205dcc0c67 | ||
|
|
98317f33d7 | ||
|
|
4b84362381 | ||
|
|
ed8865aec6 | ||
|
|
ece28ce809 | ||
|
|
7625a30f2b | ||
|
|
d3b7500a09 | ||
|
|
fd707f1470 | ||
|
|
8c838d7ca9 | ||
|
|
364471b8da | ||
|
|
4140c1ce99 | ||
|
|
6b2d50c755 | ||
|
|
11cb9979e0 | ||
|
|
8a5804881c | ||
|
|
7aa0c1ab32 | ||
|
|
4d7e44d3e7 | ||
|
|
90c343fa92 | ||
|
|
4db66e6c0c | ||
|
|
535bd97639 | ||
|
|
3d54548727 | ||
|
|
935bb54b7a | ||
|
|
0c85a3625d | ||
|
|
da3597c534 | ||
|
|
c9a06800f9 | ||
|
|
858e209ef9 | ||
|
|
e64913496b | ||
|
|
225df749d5 | ||
|
|
e978094139 | ||
|
|
d3afeafb41 | ||
|
|
dc2cfd1f61 | ||
|
|
d3ef41c38f | ||
|
|
9e06bee046 | ||
|
|
1ddce99cc8 | ||
|
|
cc380ff55e | ||
|
|
db0ac82caf | ||
|
|
c2c8d36286 | ||
|
|
54525f31ce | ||
|
|
e0fa88b183 | ||
|
|
531c5b9c5e | ||
|
|
a7c0717e5d | ||
|
|
8234ffa650 | ||
|
|
4b69a0eacf | ||
|
|
2c1149773c | ||
|
|
6801a0b129 | ||
|
|
7090b69845 | ||
|
|
7d9792b510 | ||
|
|
7b89b50e3d | ||
|
|
dfbfe59089 | ||
|
|
c6737c7213 | ||
|
|
362938d8e0 | ||
|
|
0ad7f931de | ||
|
|
fa84bc4b35 | ||
|
|
cf1c7eb76d | ||
|
|
b089f1b2d8 | ||
|
|
1e5db45029 | ||
|
|
08ac110e10 | ||
|
|
3f7e9a6de9 | ||
|
|
b15d0560a2 | ||
|
|
f635b6e714 | ||
|
|
3d73d00dcb | ||
|
|
ed603d68d8 | ||
|
|
0e483210ad | ||
|
|
f53d35f04b | ||
|
|
ca3a5176ee | ||
|
|
3031d68f6c | ||
|
|
6f8c303510 | ||
|
|
0013b57003 | ||
|
|
f7cd4483aa | ||
|
|
a7f6b67f7e | ||
|
|
a6100b2988 | ||
|
|
473a5562ad | ||
|
|
7459088efa | ||
|
|
f1d53340b2 | ||
|
|
74e8b93376 | ||
|
|
b966542cf7 | ||
|
|
7d07926f37 | ||
|
|
d9a978cf58 | ||
|
|
b5ce5a2eba | ||
|
|
af5b760d3c | ||
|
|
9688bca70d | ||
|
|
ed13fc4624 | ||
|
|
9d5d575d71 | ||
|
|
55b1909b03 | ||
|
|
93c8726ab9 | ||
|
|
14633c945f | ||
|
|
1e8c862c55 | ||
|
|
101c6e1a64 | ||
|
|
7e36b163bd | ||
|
|
5a57f5968d | ||
|
|
31f741269d | ||
|
|
63ff118d8a | ||
|
|
8b88c7e22b | ||
|
|
8e0c0401f8 | ||
|
|
d60e351f88 | ||
|
|
686a2597f4 | ||
|
|
975df76734 | ||
|
|
ee209ead6d | ||
|
|
4533a8f8ff | ||
|
|
92ade26e35 | ||
|
|
ae147e3b1f | ||
|
|
0a2c9463b9 | ||
|
|
f2ec0738cc | ||
|
|
f1b649a6d1 | ||
|
|
873a671d84 | ||
|
|
bbbfa870c1 | ||
|
|
887f6c655d | ||
|
|
4e3492804e | ||
|
|
44f64352e3 | ||
|
|
d80690d563 | ||
|
|
24d9c9b9d0 | ||
|
|
d4feb68416 | ||
|
|
3514248c09 | ||
|
|
b90010c3cf | ||
|
|
a4ddc2154c | ||
|
|
923d79f467 | ||
|
|
54bdc76b3b | ||
|
|
a5ffc4c5b1 | ||
|
|
7c1e89cbe3 | ||
|
|
18b97b887c | ||
|
|
999c158264 | ||
|
|
d4342fd4a8 | ||
|
|
60232115d3 | ||
|
|
727b400299 | ||
|
|
bcc6541216 | ||
|
|
ee42ed8e3c | ||
|
|
eeefebfbe0 | ||
|
|
d440a1c977 | ||
|
|
8d8adf82c8 | ||
|
|
093055473b | ||
|
|
355b459f22 | ||
|
|
02aafc3df3 | ||
|
|
1a3aa2dfc4 | ||
|
|
c3796b825a | ||
|
|
b5db744ad6 | ||
|
|
0bce1b0cbe | ||
|
|
1e2828453c | ||
|
|
9a08e1a874 | ||
|
|
0317aa327d | ||
|
|
7a6d98bb37 | ||
|
|
6f6b4222d6 | ||
|
|
f600198501 | ||
|
|
abd405b91e | ||
|
|
f6a30534bd | ||
|
|
aa7bd60c02 | ||
|
|
1cbd6eb89c | ||
|
|
a9624b5fc0 | ||
|
|
7c8e64c91b | ||
|
|
bea877c627 | ||
|
|
2c5edb372f | ||
|
|
11149e19ef | ||
|
|
d1d64ac44d | ||
|
|
5e4eadf0a1 | ||
|
|
2d78e7c72d | ||
|
|
abd23045bc | ||
|
|
f0175e1638 | ||
|
|
75634be59b | ||
|
|
3458f7de3e | ||
|
|
a1c267648a | ||
|
|
8f3ae555b3 | ||
|
|
14c4fac22b | ||
|
|
5299c30942 | ||
|
|
ada1da9377 | ||
|
|
aebb422f67 | ||
|
|
04b4ec90a7 | ||
|
|
8d0279a0f0 | ||
|
|
a0f18783ee | ||
|
|
e93afe3d33 | ||
|
|
641e9a84b1 | ||
|
|
a54be62dbb | ||
|
|
d1e55008d3 | ||
|
|
eaaeea850f | ||
|
|
e9001e65b7 | ||
|
|
072e1a9226 | ||
|
|
c7d52cf762 | ||
|
|
70429b1ea3 | ||
|
|
5ff1a7d578 | ||
|
|
0e2fae9551 | ||
|
|
ca15a227d5 | ||
|
|
3b0f261ab0 | ||
|
|
40db3644f3 | ||
|
|
9dbca7898b | ||
|
|
763252f6ad | ||
|
|
a6c0c9b2aa | ||
|
|
a27c84c0e1 | ||
|
|
540db56694 | ||
|
|
84f5f73725 | ||
|
|
d9368d1ea8 | ||
|
|
6451bfee9c | ||
|
|
00cceb0574 | ||
|
|
82e252c4ea | ||
|
|
f32d6adf20 | ||
|
|
8af4e0a058 | ||
|
|
ae687cd76d | ||
|
|
de674d8e23 | ||
|
|
3bbe63e7f9 | ||
|
|
56f0d12968 | ||
|
|
4e9ceb5db4 | ||
|
|
7ee12ddcca | ||
|
|
9d2bb52db8 | ||
|
|
858f873c6c | ||
|
|
00f9243bd6 | ||
|
|
b41f753f3c | ||
|
|
6bc5e93806 | ||
|
|
edbedf7c46 | ||
|
|
d93a764014 | ||
|
|
3afb011088 | ||
|
|
f79b8be687 | ||
|
|
3f93cac914 | ||
|
|
6564302e7b | ||
|
|
24121fa4a8 | ||
|
|
27bd0ae2ab | ||
|
|
d0a152b51b | ||
|
|
785e5998b8 | ||
|
|
94aa095798 | ||
|
|
4caa28f7fc | ||
|
|
8f68386151 | ||
|
|
3795e6f3a2 | ||
|
|
422593fcaa | ||
|
|
b6bdcd3859 | ||
|
|
8a788bf32d | ||
|
|
c1325babad | ||
|
|
38e576b16b | ||
|
|
5bb03eff73 | ||
|
|
c417c7c6b6 | ||
|
|
0569b10f66 | ||
|
|
424669f4b0 | ||
|
|
e89c027a92 | ||
|
|
9cf0c14e71 | ||
|
|
446a7f09f6 | ||
|
|
fd9176254f | ||
|
|
b136e81131 | ||
|
|
aa77ce484a | ||
|
|
748f124749 | ||
|
|
cb6cce7b62 | ||
|
|
beb3c63df6 | ||
|
|
2799625d5c | ||
|
|
09696c680d | ||
|
|
7f994eed80 | ||
|
|
d6b49a1a6f | ||
|
|
7a77ad9484 | ||
|
|
ab1ce0f6ac | ||
|
|
03652ffb3b | ||
|
|
1df6ac0d2e | ||
|
|
6c0917208c | ||
|
|
54b34091f4 | ||
|
|
ed30a055f2 | ||
|
|
4f0d935202 | ||
|
|
5f5b89e34f | ||
|
|
ba99475e07 | ||
|
|
99d0c11001 | ||
|
|
5296a248d0 | ||
|
|
47641d4f32 | ||
|
|
728039e550 | ||
|
|
d4e164fa9a | ||
|
|
de87e498ec | ||
|
|
6d37206f7b | ||
|
|
8317806793 | ||
|
|
e2525d516b | ||
|
|
f043137746 | ||
|
|
2708902a2e | ||
|
|
c9fdb8ab64 | ||
|
|
57545c1167 | ||
|
|
baffadfe9e | ||
|
|
b7b11ca614 | ||
|
|
4438352918 | ||
|
|
6d3e624ad7 | ||
|
|
a7fe804920 | ||
|
|
b97f2b37c9 | ||
|
|
7a00d57439 | ||
|
|
2408554c06 | ||
|
|
ad29d5b199 | ||
|
|
345ffe9544 | ||
|
|
b22aec29c6 | ||
|
|
b14b62d91d | ||
|
|
035853c8e7 | ||
|
|
4d94f2aea9 | ||
|
|
aea11c595a | ||
|
|
88816d4ab3 | ||
|
|
92560c8711 | ||
|
|
9ed6463c82 | ||
|
|
07aeef805d | ||
|
|
690e09577b | ||
|
|
657609cb99 | ||
|
|
0eef4d16ad | ||
|
|
537bce9c95 | ||
|
|
77dabbb5c4 | ||
|
|
3b0e163a55 | ||
|
|
b0a9647576 | ||
|
|
20d720b5a3 | ||
|
|
ff094804a1 | ||
|
|
c36dcec44c | ||
|
|
cb9b3c2113 | ||
|
|
191bb86a0a | ||
|
|
a0e2e4c398 | ||
|
|
940f21ec4e | ||
|
|
cff9f7a291 | ||
|
|
d700ad173c | ||
|
|
7c3e3062c5 | ||
|
|
32024b93fd | ||
|
|
a7eaa8621d | ||
|
|
f69e9d8c74 | ||
|
|
676d652519 | ||
|
|
e0b626c7ff | ||
|
|
3eec741088 | ||
|
|
b9ed2ba650 | ||
|
|
8451a264b4 | ||
|
|
fa1478e47f | ||
|
|
b0af5a1da0 | ||
|
|
e56a7c86ec | ||
|
|
cc9a5284d9 | ||
|
|
ff5a1027fe | ||
|
|
8d00c269af | ||
|
|
e0205c67c7 | ||
|
|
53a33f16ad | ||
|
|
3f7160d467 | ||
|
|
ee9f3d4dcc | ||
|
|
fa775f6ad7 | ||
|
|
7d753b9023 | ||
|
|
2e1c682ed8 | ||
|
|
9764c09f43 | ||
|
|
8bbf2a356d | ||
|
|
f80febaf8c | ||
|
|
e1229bca25 | ||
|
|
f5e141d718 | ||
|
|
0992a6a4fb | ||
|
|
792938a3f9 | ||
|
|
7a8c211c69 | ||
|
|
d41d1a73a5 | ||
|
|
b701e1211c | ||
|
|
8e3854cb90 | ||
|
|
a5cb791f22 | ||
|
|
40595dd6f1 | ||
|
|
907a74b746 | ||
|
|
4e944bccb9 | ||
|
|
c567078fbe | ||
|
|
c8390423cf | ||
|
|
24fd437492 | ||
|
|
27512c94e6 | ||
|
|
44735a6e87 | ||
|
|
5148845f92 | ||
|
|
a51949687e | ||
|
|
0583948161 | ||
|
|
38d3d3cff3 | ||
|
|
4e4db6639a | ||
|
|
50b0a25f7d | ||
|
|
86422eef63 | ||
|
|
1f398f8eca | ||
|
|
b8056e27be | ||
|
|
a35c732444 | ||
|
|
8f61920f01 | ||
|
|
b24f0d7cbf | ||
|
|
7d97488e7c | ||
|
|
bfdd195284 | ||
|
|
d39ce49e2f | ||
|
|
e84e0bf11c | ||
|
|
03e2e48c3c | ||
|
|
a0657ef147 | ||
|
|
e609cb2321 | ||
|
|
79b67c4071 | ||
|
|
c23f49c4d6 | ||
|
|
ee91e1d5c1 | ||
|
|
704901aef5 | ||
|
|
a3d96d0761 | ||
|
|
64b0bd7187 | ||
|
|
c48702f5ec | ||
|
|
9c4a3e3ae1 | ||
|
|
6918172694 | ||
|
|
71fbb370c3 | ||
|
|
2923800d7d | ||
|
|
4ef9d2634d | ||
|
|
94c2d708b0 | ||
|
|
d61ed671c5 | ||
|
|
8132f12e29 | ||
|
|
50fe7dfe70 | ||
|
|
5a1aafec2e | ||
|
|
e041874a9d | ||
|
|
e10a8f1f56 | ||
|
|
ae627cc8a2 | ||
|
|
87eb478622 | ||
|
|
4f88fbdbce | ||
|
|
65ccd6f2e6 | ||
|
|
68d7c60e74 | ||
|
|
c267da42c0 | ||
|
|
75a43cf008 | ||
|
|
a22aa9a130 | ||
|
|
5d6920fe6e | ||
|
|
e1bd8e7b8f | ||
|
|
b6e6dcf97b | ||
|
|
1c343944b8 | ||
|
|
fbff004f93 | ||
|
|
ba99d83e9b | ||
|
|
fd43a4d666 | ||
|
|
52d0c584b0 | ||
|
|
b1b2023fbe | ||
|
|
a16ce50b45 | ||
|
|
c090fa22b9 | ||
|
|
9ef754ca58 | ||
|
|
62034b911f | ||
|
|
0bf9d88fba | ||
|
|
8af7fc9390 | ||
|
|
77ccc2fadc | ||
|
|
ec8114fbb5 | ||
|
|
0b9a5f9787 | ||
|
|
3711f087a3 | ||
|
|
427e09118a | ||
|
|
e6c10962c1 | ||
|
|
5edfbeee62 | ||
|
|
f8431a4698 | ||
|
|
b7f870a2fc | ||
|
|
246c9e08c8 | ||
|
|
913c494947 | ||
|
|
7d6f17a06e | ||
|
|
1294b7700e | ||
|
|
83b68ccc33 | ||
|
|
191e73e1d6 | ||
|
|
a499724dbb | ||
|
|
d986618b8f | ||
|
|
e7de57e75a | ||
|
|
2d9c613f01 | ||
|
|
4f08e26f3d | ||
|
|
b2a2b3bc35 | ||
|
|
e6af223b51 | ||
|
|
41c24a072f | ||
|
|
807d5355ea | ||
|
|
54d30b775b | ||
|
|
7ac16077a1 | ||
|
|
4cf8356534 | ||
|
|
27ba499869 | ||
|
|
fd5655a925 | ||
|
|
67c16e7f3a | ||
|
|
5c2c9c68fb | ||
|
|
e8b6033d79 | ||
|
|
895c2dd8da | ||
|
|
3a698be02b | ||
|
|
8842467e68 | ||
|
|
f05c6af351 | ||
|
|
bfee968f96 | ||
|
|
767326c645 | ||
|
|
b15d7aa699 | ||
|
|
291f856430 | ||
|
|
7e806bd9ea | ||
|
|
57b7e4f1b1 | ||
|
|
c5ee22ef86 | ||
|
|
c6ec41d374 | ||
|
|
b6b86f1946 | ||
|
|
c31756d33b | ||
|
|
768cae5fab | ||
|
|
aade883e24 | ||
|
|
1e0e927e97 | ||
|
|
cd500cb84f | ||
|
|
9cde2efb51 | ||
|
|
91e7d86a27 | ||
|
|
67965db96a | ||
|
|
87e9aabfd4 | ||
|
|
683ef473f9 | ||
|
|
60686d7ee0 | ||
|
|
cf2a7574ea | ||
|
|
98fecd79ed | ||
|
|
c7c838ffa5 | ||
|
|
a669e2d293 | ||
|
|
37b7955fc2 | ||
|
|
52b35c5efc | ||
|
|
080fd33146 | ||
|
|
7b7ea78ee2 | ||
|
|
5072506e29 | ||
|
|
a8c86f2973 | ||
|
|
cd9d8e4d45 | ||
|
|
1f251c9f5f | ||
|
|
4b1c641e63 | ||
|
|
f2cf8417aa | ||
|
|
e8bb46536e | ||
|
|
dde5d48511 | ||
|
|
ac70a57fd1 | ||
|
|
83ad7502d9 | ||
|
|
e2b77279ae | ||
|
|
57a03630ae | ||
|
|
2b6b35b1fc | ||
|
|
996504ca80 | ||
|
|
c62638fa30 | ||
|
|
87468e951c | ||
|
|
b4b63767dc | ||
|
|
52d2552a24 | ||
|
|
62c89bfaf7 | ||
|
|
f76f200ed7 | ||
|
|
b18aa2f9d8 | ||
|
|
99ccd5cd0e | ||
|
|
214bb78660 | ||
|
|
f01f7b76ce | ||
|
|
c9d13cdc13 | ||
|
|
e59f1ef3ff | ||
|
|
3a6bc3f98b | ||
|
|
a918064d93 | ||
|
|
63092a8cc6 | ||
|
|
a999f68a27 | ||
|
|
2322cc2626 | ||
|
|
42f250887a | ||
|
|
3d1ff53b82 | ||
|
|
1c24c19ffe | ||
|
|
73e8670fc4 | ||
|
|
31d1fe637d | ||
|
|
655607eecc | ||
|
|
ec0b3737d6 | ||
|
|
3cfb996078 | ||
|
|
c2c1fe7a6b | ||
|
|
5d33e1ef7f | ||
|
|
5194367e5d | ||
|
|
50bf0de51c | ||
|
|
939ae3db57 | ||
|
|
8fce5147e2 | ||
|
|
f2fca40158 | ||
|
|
4ba654fa4f | ||
|
|
7118b6119f | ||
|
|
1b1e930a22 | ||
|
|
80dc663e5d | ||
|
|
8f9aa4476d | ||
|
|
deb95e79ca | ||
|
|
d5bb462db1 | ||
|
|
8eb8d61b17 | ||
|
|
11e42fb21d | ||
|
|
2276c7df3d | ||
|
|
a48df9e130 | ||
|
|
545156f64a | ||
|
|
4dabe5123f | ||
|
|
380ad169a9 | ||
|
|
78dbc71354 | ||
|
|
dbac1be57b | ||
|
|
33d03cc102 | ||
|
|
b442d20e65 | ||
|
|
3eb8d27998 | ||
|
|
d056bf6edd | ||
|
|
e50a28e49c | ||
|
|
1095fc3071 | ||
|
|
a10d861160 | ||
|
|
9681230893 | ||
|
|
392a14de57 | ||
|
|
122ecb23fc | ||
|
|
6071376c03 | ||
|
|
9edc99e2b1 | ||
|
|
a93b0b8eb5 | ||
|
|
5bb999f7ee | ||
|
|
5ce3679ff3 | ||
|
|
adbffa6d47 | ||
|
|
da88a7dadc | ||
|
|
86f8017a80 | ||
|
|
892c24d943 | ||
|
|
f6aba9974c | ||
|
|
dce86e966e | ||
|
|
1178579947 | ||
|
|
6a0d06565f | ||
|
|
1e13aef910 | ||
|
|
c2bca566b2 | ||
|
|
3a0ee4b111 | ||
|
|
20b85b357f | ||
|
|
22de986f19 | ||
|
|
6b99162a0b | ||
|
|
75b7c2ba60 | ||
|
|
3c37e69994 | ||
|
|
28acbc3f0a | ||
|
|
134cc876bb | ||
|
|
9d556a7df5 | ||
|
|
e9236755bb | ||
|
|
656cc5732a | ||
|
|
0599c6cb41 | ||
|
|
61ce38a482 | ||
|
|
158adb119b | ||
|
|
1db4bbeaad | ||
|
|
f06bf12187 | ||
|
|
fb7b7f20ea | ||
|
|
e3c911777f | ||
|
|
1b65bcf2f7 | ||
|
|
47f9effb16 | ||
|
|
aa476d6ea3 | ||
|
|
78c58d2acd | ||
|
|
d7811074da | ||
|
|
e60bd3dba6 | ||
|
|
764b8a5825 | ||
|
|
51f9f401bf | ||
|
|
6819261f12 | ||
|
|
be69070e24 | ||
|
|
fe50c706d3 | ||
|
|
30ea3e8f98 | ||
|
|
afe2e334a1 | ||
|
|
fb7c7999f3 | ||
|
|
b6fa4a39a4 | ||
|
|
2002db2531 | ||
|
|
2faccd7b98 | ||
|
|
7751786660 | ||
|
|
6bf40472e9 | ||
|
|
75752d5a75 | ||
|
|
67c44b88a8 | ||
|
|
00fd196df2 | ||
|
|
930493bbaf | ||
|
|
6793a41a77 | ||
|
|
942549ea91 | ||
|
|
7196b5094e | ||
|
|
8e9ce7ed36 | ||
|
|
8189e1c7b5 | ||
|
|
ed5a43bcc5 | ||
|
|
0448c16d4a | ||
|
|
9adb46cccd | ||
|
|
4e0468f052 | ||
|
|
85f66b6cc0 | ||
|
|
41b567bd1e | ||
|
|
d0cbd41a30 | ||
|
|
44c495b7fd | ||
|
|
d840ed6258 | ||
|
|
e138311ffe | ||
|
|
4ae196df9e | ||
|
|
2fadd2febf | ||
|
|
8d43ee1dbf | ||
|
|
6c18bdb854 | ||
|
|
94b245132f | ||
|
|
9a68ca901f | ||
|
|
2e9100afb3 | ||
|
|
e54cf64155 | ||
|
|
3d9123e5b2 | ||
|
|
38de5ad7c9 | ||
|
|
0116d5de4f | ||
|
|
8cbb59c5a2 | ||
|
|
52d4e27612 | ||
|
|
2bd0adb634 | ||
|
|
4f00eb16fc | ||
|
|
2d5878c407 | ||
|
|
14edf2698d | ||
|
|
9cd926b212 | ||
|
|
54196d2ca6 | ||
|
|
a04df9e0c6 | ||
|
|
38f0adb324 | ||
|
|
44b2e41714 | ||
|
|
5a29e9fe3d | ||
|
|
e1b2a017fd | ||
|
|
719fec65fd | ||
|
|
4a14253d0f | ||
|
|
f900975d56 | ||
|
|
9e5bbd1341 | ||
|
|
abac6af980 | ||
|
|
b0544eab8d | ||
|
|
da6a59d3e3 | ||
|
|
bd66e4fb6f | ||
|
|
5dfad44cf9 | ||
|
|
cdf8b8a71d | ||
|
|
743d89781f | ||
|
|
88a41af4ae | ||
|
|
c58714859e | ||
|
|
ac14447511 | ||
|
|
a364090e62 | ||
|
|
0603dc6da8 | ||
|
|
05de5262bf | ||
|
|
49008adbef | ||
|
|
72be7f58b2 | ||
|
|
efff69bb54 | ||
|
|
c4039edba7 | ||
|
|
676ab229b1 | ||
|
|
37adba8a7d | ||
|
|
f1561cba9b | ||
|
|
d5b9fd2e92 | ||
|
|
f616f1b1bd | ||
|
|
ab3694bc4d | ||
|
|
734f5b4436 | ||
|
|
1893dbd862 | ||
|
|
ca26168de7 | ||
|
|
5775804e71 | ||
|
|
d42be596af | ||
|
|
68a335a086 | ||
|
|
336b4498b8 | ||
|
|
3165014ae9 | ||
|
|
8f6af6b1a0 | ||
|
|
6ff761ce00 | ||
|
|
85eb5e124f | ||
|
|
9dffd71f8f | ||
|
|
a7fab19a17 | ||
|
|
bfc9b81098 | ||
|
|
590ab57d30 | ||
|
|
958ae538aa | ||
|
|
418c62558c | ||
|
|
0adece20c6 | ||
|
|
aff4b038c2 | ||
|
|
f30710237e | ||
|
|
e97f2a0e1a | ||
|
|
a4b1069526 | ||
|
|
0157bbeb79 | ||
|
|
c56e46afe0 | ||
|
|
43dd012c4d | ||
|
|
2e31343940 | ||
|
|
9b7955ceca | ||
|
|
db304d73a0 | ||
|
|
b9abf86397 | ||
|
|
c57facdcc3 | ||
|
|
ebc731400f | ||
|
|
cd51af8ad1 | ||
|
|
716ce30141 | ||
|
|
bb4b197514 | ||
|
|
0323f03645 | ||
|
|
abaf3b3178 | ||
|
|
af2af9b50f | ||
|
|
12823d803b | ||
|
|
d370cdb9d8 | ||
|
|
da4b1c2b36 | ||
|
|
42f5427fe4 | ||
|
|
da952bc48f | ||
|
|
633f3f5651 | ||
|
|
b9cabb5363 | ||
|
|
86271c1d83 | ||
|
|
b51b7ad1f3 | ||
|
|
c8c79f738a | ||
|
|
05e981a0cf | ||
|
|
24b344b656 | ||
|
|
20be92453b | ||
|
|
15f41f61bb | ||
|
|
0db3944173 | ||
|
|
883911512f | ||
|
|
b424c9700c | ||
|
|
1632d188af | ||
|
|
c354453670 | ||
|
|
8f664eda2d | ||
|
|
a639db9882 | ||
|
|
bfe1e3cecf | ||
|
|
295d003f16 | ||
|
|
3111bb5cfb | ||
|
|
b71f948427 | ||
|
|
7d02715183 | ||
|
|
c97e3cb831 | ||
|
|
d22c9d6f83 | ||
|
|
dafb1a0b98 | ||
|
|
0d720e5480 | ||
|
|
fc5022b17a | ||
|
|
9708481d5e | ||
|
|
8a4040c036 | ||
|
|
e23407b008 | ||
|
|
d007939cdc | ||
|
|
1becc0aecc | ||
|
|
f5f77aa044 | ||
|
|
63e808ad3f | ||
|
|
76d521bd07 | ||
|
|
4bf3e11b70 | ||
|
|
3b6848821c | ||
|
|
5bca9640f1 | ||
|
|
83aaa9379d | ||
|
|
bbf1edb455 | ||
|
|
fcbfbedf18 | ||
|
|
df831d1ec6 | ||
|
|
b6b091e30e | ||
|
|
5eed433ad6 | ||
|
|
b6682b9f84 | ||
|
|
cdb93d5c44 | ||
|
|
dfc9cebb84 | ||
|
|
2b0d1f1166 | ||
|
|
f951d0ce04 | ||
|
|
3905e95e19 | ||
|
|
1845a724e5 | ||
|
|
4a13682d50 | ||
|
|
5674307be3 | ||
|
|
7277ce1030 | ||
|
|
28c6aa36fd | ||
|
|
3b46b5ae3a | ||
|
|
da7272e37c | ||
|
|
1388657c83 | ||
|
|
ca68fdeb09 | ||
|
|
9b275d3077 | ||
|
|
1b7b7de471 | ||
|
|
682a1fa4df | ||
|
|
848d0372cc | ||
|
|
577121b69b | ||
|
|
a98cb8bec9 | ||
|
|
a6d5adfc57 | ||
|
|
ceb676f6f0 | ||
|
|
b85c74d02f | ||
|
|
06f56b9e08 | ||
|
|
8615d1ea9e | ||
|
|
0dffd0f8d1 | ||
|
|
c1f4cccea2 | ||
|
|
f1d59e5d63 | ||
|
|
04c1ade724 | ||
|
|
575de3fa57 | ||
|
|
79ac4fec96 | ||
|
|
ea485aede1 | ||
|
|
5d3bffe651 | ||
|
|
688a49abb9 | ||
|
|
aeb87cc105 | ||
|
|
c523a87aaa | ||
|
|
66fcc79035 | ||
|
|
37aaf2bec5 | ||
|
|
09d7875ac4 | ||
|
|
d43077ed45 | ||
|
|
4395d0080a | ||
|
|
9ca9ddcb07 | ||
|
|
2b16f48c31 | ||
|
|
9fd5f53bbe | ||
|
|
658426dd30 | ||
|
|
22412fc657 | ||
|
|
edf72e0ac0 | ||
|
|
fc94599505 | ||
|
|
06f30a8b32 | ||
|
|
12b1194d37 | ||
|
|
17f559a4d5 | ||
|
|
369c574864 | ||
|
|
c5d61f8b34 | ||
|
|
31464afb04 | ||
|
|
57fb847554 | ||
|
|
b9ca9f7273 | ||
|
|
174b3fe9bb | ||
|
|
6b1fccde27 | ||
|
|
3354b60055 | ||
|
|
ba1fd83141 | ||
|
|
a2afabe3fc | ||
|
|
ffc6607ea2 | ||
|
|
4a91cb8ff7 | ||
|
|
8277d906cb | ||
|
|
525b414f61 | ||
|
|
fe18c3c428 | ||
|
|
0b9e830058 | ||
|
|
f97d6d63fc | ||
|
|
04fa258756 | ||
|
|
8108627d5b | ||
|
|
fc28523de5 | ||
|
|
4785cb7948 | ||
|
|
e614cc874d | ||
|
|
b73380c3ec | ||
|
|
f5c0cc1867 | ||
|
|
b95bcf3a98 | ||
|
|
ca70a6d267 | ||
|
|
3b32e15fe4 | ||
|
|
f09aebb45f | ||
|
|
31a3565592 | ||
|
|
09f0877408 | ||
|
|
37817b6976 | ||
|
|
83f983ceef | ||
|
|
60bb01311c | ||
|
|
cb5d20103c | ||
|
|
2aac86f60f | ||
|
|
08443de04e | ||
|
|
fedeac2191 | ||
|
|
da72f4c39f | ||
|
|
d2a6dae8ca | ||
|
|
7ee5c8a55b | ||
|
|
36ba5e95fe | ||
|
|
7f905ce1ff | ||
|
|
c767db9c81 | ||
|
|
ff0a2c104d | ||
|
|
6c107f2147 | ||
|
|
7d9b44230a | ||
|
|
3d392e7c20 | ||
|
|
14c0f3b72b | ||
|
|
c669f5dfdb | ||
|
|
d060cd8f9c | ||
|
|
60bcacc557 | ||
|
|
3d2670ae81 | ||
|
|
53344db3ca | ||
|
|
5298deb9ae | ||
|
|
5765a7ce3a | ||
|
|
8d30e065f8 | ||
|
|
cdc269b69f | ||
|
|
aa777ade68 | ||
|
|
2098a42ad2 | ||
|
|
ba5db33686 | ||
|
|
17b1815c32 | ||
|
|
3cfcd8666e | ||
|
|
32a0700cc9 | ||
|
|
c9635962c6 | ||
|
|
caa20e1167 | ||
|
|
fdd007cca6 | ||
|
|
9911e412ae | ||
|
|
a14688033e | ||
|
|
1086ffe3e5 | ||
|
|
27d0a111ee | ||
|
|
0614282af0 | ||
|
|
dfaa60db25 | ||
|
|
d30f8c0f58 | ||
|
|
39e8c25c1d | ||
|
|
751f425228 | ||
|
|
865ff61166 | ||
|
|
ad57b2940a | ||
|
|
6e6f134898 | ||
|
|
b58ff6bcc0 | ||
|
|
d9a55bee74 | ||
|
|
d476052fab | ||
|
|
3081fa9b88 | ||
|
|
80c25fa38b | ||
|
|
b2dbf6a4ca | ||
|
|
6d32889429 | ||
|
|
4ebd7287b0 | ||
|
|
d9133703c5 | ||
|
|
21580597cf | ||
|
|
9960ede4e5 | ||
|
|
7485e6f2bd | ||
|
|
2b09e1b76d | ||
|
|
dd7f4793ea | ||
|
|
57818f5b4b | ||
|
|
18399d9cff | ||
|
|
ac2e86db5b | ||
|
|
9328b4c35e | ||
|
|
244eced690 | ||
|
|
8ff3e99af1 | ||
|
|
bff0668fd7 | ||
|
|
57df76bb53 | ||
|
|
85b6507768 | ||
|
|
e87ed44e3b | ||
|
|
8686fda248 | ||
|
|
3ef79632b5 | ||
|
|
5d5122121b | ||
|
|
8f3c52096c | ||
|
|
ed417b84d9 | ||
|
|
b173216445 | ||
|
|
f7b3955074 | ||
|
|
e00983b194 | ||
|
|
95ce01cbc0 | ||
|
|
f5a240ae83 | ||
|
|
07f208bd6a | ||
|
|
fd4e5422b1 | ||
|
|
ad1cc02a66 | ||
|
|
a2e70ea25c | ||
|
|
7e01e9f244 | ||
|
|
797199ec78 | ||
|
|
c7227ec57b | ||
|
|
9cfea74ebe | ||
|
|
3d39fd799d | ||
|
|
906d804ba4 | ||
|
|
549900ec52 | ||
|
|
5d634a973d | ||
|
|
1638e748c0 | ||
|
|
ac91e10da8 | ||
|
|
de0d7a5320 | ||
|
|
8cbe082974 | ||
|
|
ffd2cc11cf | ||
|
|
6d6af6cc3c | ||
|
|
73fa4a6b60 | ||
|
|
db3954a20f | ||
|
|
367647cec3 | ||
|
|
7de1cd016e | ||
|
|
d223b51f36 | ||
|
|
ce9298f7ca | ||
|
|
eaa461de38 | ||
|
|
fccc96e134 | ||
|
|
68918dd67c | ||
|
|
4ef2f73b26 | ||
|
|
8e0c2e42fb | ||
|
|
72a677f75e | ||
|
|
9a4c2fd85e | ||
|
|
d3c96be585 | ||
|
|
4407326e42 | ||
|
|
555555554d | ||
|
|
c07eef4c99 | ||
|
|
47703773d9 | ||
|
|
90172aca00 | ||
|
|
f51f769c62 | ||
|
|
3b5c9513cf | ||
|
|
8c07fdd896 | ||
|
|
68fc37778d | ||
|
|
d4d50bd9e2 | ||
|
|
11153db2f1 | ||
|
|
175911b7d4 | ||
|
|
d6da7e765e | ||
|
|
e4ffdfded5 | ||
|
|
e4dc6e74f7 | ||
|
|
934ea7c116 | ||
|
|
b34fb79125 | ||
|
|
fa911b95f0 | ||
|
|
689d1ee6f5 | ||
|
|
6bf77c37f1 | ||
|
|
b811d1553d | ||
|
|
471d64c3b2 | ||
|
|
62e84f8e7f | ||
|
|
eb6d3a7c2b | ||
|
|
9340aca617 | ||
|
|
26e0445913 | ||
|
|
0a0070d7d9 | ||
|
|
f35da586d2 | ||
|
|
7e642dafa2 | ||
|
|
5b1e916046 | ||
|
|
25d7f7d78e | ||
|
|
125bd7b713 | ||
|
|
3e37efeab4 | ||
|
|
62f244d108 | ||
|
|
ec1ed92329 | ||
|
|
3876906ef4 | ||
|
|
ba8b272d75 | ||
|
|
b54b1ef2fb | ||
|
|
36fd68fa4b | ||
|
|
1a135d0164 | ||
|
|
ab1c938f02 | ||
|
|
962444205a | ||
|
|
09b2efac21 | ||
|
|
7f6393838c | ||
|
|
10f9811000 | ||
|
|
302bfab9fa | ||
|
|
95b0771ca0 | ||
|
|
7dca0ecce5 | ||
|
|
da8e41c20f | ||
|
|
ce87426f63 | ||
|
|
f297cac2ec | ||
|
|
9aaa1d62d3 | ||
|
|
589a4117d6 | ||
|
|
e1f87a7cda | ||
|
|
4d5cc6ff24 | ||
|
|
9b5b1ce38b | ||
|
|
df1ada3aed | ||
|
|
e8bd02d5f8 | ||
|
|
42d629a15f | ||
|
|
ff3c773801 | ||
|
|
c2c50708ba | ||
|
|
3837ba45f2 | ||
|
|
7add1174cf | ||
|
|
00ca59d41c | ||
|
|
a5e61e623a | ||
|
|
52f64090f5 | ||
|
|
427bdf04c1 | ||
|
|
9827b090d3 | ||
|
|
0ab539fc9a | ||
|
|
1b93c11014 | ||
|
|
c5c5e58840 | ||
|
|
496f95c09b | ||
|
|
e30473ee21 | ||
|
|
250724230c | ||
|
|
47ecaa02f5 | ||
|
|
dc116b6d9f | ||
|
|
c912447520 | ||
|
|
82ec0ae213 | ||
|
|
2349286fa9 | ||
|
|
267f4e8ac1 | ||
|
|
b93df1e691 | ||
|
|
a0df25d7ed | ||
|
|
4481acc7c4 | ||
|
|
a72018389c | ||
|
|
a7b1808a07 | ||
|
|
f00e744e09 | ||
|
|
c5305d9597 | ||
|
|
d53bf91a4f | ||
|
|
17b105fe65 | ||
|
|
ff0ed42a74 | ||
|
|
8f2e92b964 | ||
|
|
8dbb310242 | ||
|
|
9b732a66c4 | ||
|
|
362e183338 | ||
|
|
4bcae2f3b3 | ||
|
|
1b57319721 | ||
|
|
de8d5228fb | ||
|
|
b0497191f7 | ||
|
|
ebb8addfcc | ||
|
|
eee5da4e8b | ||
|
|
cdbf5a45a5 | ||
|
|
f29cb3894b | ||
|
|
a8af7abdf1 | ||
|
|
7b5ece6880 | ||
|
|
bf1e355d4a | ||
|
|
0a3b780c29 | ||
|
|
8998e42cf0 | ||
|
|
e8d4457826 | ||
|
|
fcdb0ddd19 | ||
|
|
65ae89daaa | ||
|
|
546049a9eb | ||
|
|
6ea5a64c0f | ||
|
|
c9dd310466 | ||
|
|
95fa7a84a1 | ||
|
|
d7dbb4d274 | ||
|
|
cb36772d25 | ||
|
|
fb2225147e | ||
|
|
9397b4fba4 | ||
|
|
353bc7791a | ||
|
|
da21462caa | ||
|
|
dbddfe85ad | ||
|
|
c05b993c60 | ||
|
|
1fb2465d8c | ||
|
|
28d4bc3d2c | ||
|
|
ab702eb8ad | ||
|
|
00d33cbd2b | ||
|
|
897be34eb1 | ||
|
|
fd3b5109fe | ||
|
|
91d8e16eb8 | ||
|
|
788d5be8d4 | ||
|
|
09ba902610 | ||
|
|
0c3093347c | ||
|
|
4c8ca40889 | ||
|
|
1197661286 | ||
|
|
8eed9dab94 | ||
|
|
6cb5e4197a | ||
|
|
5d2d45d98f | ||
|
|
1484163de1 | ||
|
|
cbb5d83a69 | ||
|
|
48a32ba4b0 | ||
|
|
f3389c3030 | ||
|
|
3f14e6ec82 | ||
|
|
d7833fb327 | ||
|
|
ffffb859de | ||
|
|
ec23969bc8 | ||
|
|
014f4f57ae | ||
|
|
edacdd23e5 | ||
|
|
135b1ce4bd | ||
|
|
5b407ed606 | ||
|
|
4594823ebd | ||
|
|
8f63c885d6 | ||
|
|
dd51a0f8f9 | ||
|
|
380db029d2 | ||
|
|
1fee56ba74 | ||
|
|
27e30ae8b6 | ||
|
|
9397cc646f | ||
|
|
f07f6c1f43 | ||
|
|
ef32c3062f | ||
|
|
1f69d56cff | ||
|
|
e185977688 | ||
|
|
789937cdf1 | ||
|
|
117ddf44d1 | ||
|
|
54a737500d | ||
|
|
38d726f47e | ||
|
|
3d90ed4dd2 | ||
|
|
f62399beda | ||
|
|
8bc4d6d297 | ||
|
|
a0fd889cb8 | ||
|
|
54bd1933f9 | ||
|
|
3302e28cf7 | ||
|
|
20ef7093ba | ||
|
|
fa1414dca2 | ||
|
|
e58574d80d | ||
|
|
10737cad91 | ||
|
|
ae6a2ba810 | ||
|
|
a8f2f59e33 | ||
|
|
b693706c66 | ||
|
|
e7b7a23881 | ||
|
|
f0c1ad02e7 | ||
|
|
3730a3d410 | ||
|
|
2db2398ee7 | ||
|
|
ebe03785e1 | ||
|
|
8e100c6301 | ||
|
|
0530a0bb6e | ||
|
|
0a78f4a22c | ||
|
|
1ad450e27d | ||
|
|
9f7416894c | ||
|
|
92d6afa458 | ||
|
|
d4c4b1e08d | ||
|
|
61dfaf6f61 | ||
|
|
d742504a0c | ||
|
|
c4b76f5469 | ||
|
|
1b14bc2aa4 | ||
|
|
333a98d088 | ||
|
|
1895ea987a | ||
|
|
d97e8384e5 | ||
|
|
477a4c488c | ||
|
|
d6f4331313 | ||
|
|
bed2cf512a | ||
|
|
d917ae7f9f | ||
|
|
d6820da432 | ||
|
|
d5dfc17dd9 | ||
|
|
b40896ce43 | ||
|
|
41b787f16b | ||
|
|
fdab6636c4 | ||
|
|
4501b59081 | ||
|
|
719a6de07c | ||
|
|
18e33cb14a | ||
|
|
48c9f47f2a | ||
|
|
f0b233d760 | ||
|
|
248ef1c663 | ||
|
|
b9d6795ac8 | ||
|
|
6f5dad1978 | ||
|
|
61bd4d0452 | ||
|
|
8f776a9e23 | ||
|
|
d83da4ec55 | ||
|
|
6f94d588f5 | ||
|
|
7dab67c129 | ||
|
|
09aee682a2 | ||
|
|
f06b82fdb0 | ||
|
|
f7fc3ce017 | ||
|
|
5b5a84606f | ||
|
|
885dbb2c45 | ||
|
|
19f7b6bf14 | ||
|
|
276f76f508 | ||
|
|
e2cd09d0a4 | ||
|
|
da24dd30e7 | ||
|
|
b229167da8 | ||
|
|
ce2e15e76d | ||
|
|
a959baf42f | ||
|
|
f55f079500 | ||
|
|
2d9fb792b5 | ||
|
|
5a8a33ac36 | ||
|
|
24fcb422ea | ||
|
|
5ebf254316 | ||
|
|
679a7967f5 | ||
|
|
20fae5d25d | ||
|
|
df504dd6c1 | ||
|
|
21bcc2ccba | ||
|
|
b8cc2a3971 | ||
|
|
342d863f0d | ||
|
|
9be6c0f184 | ||
|
|
050335f959 | ||
|
|
6ae8e0bc62 | ||
|
|
fc11e92dae | ||
|
|
262d740652 | ||
|
|
041e8e07a4 | ||
|
|
cf33123181 | ||
|
|
546eced065 | ||
|
|
d35676343a | ||
|
|
1534070b0d | ||
|
|
274b4dc65f | ||
|
|
49e15a2bce | ||
|
|
a3cf535575 | ||
|
|
6553b5f6de | ||
|
|
1df66650d1 | ||
|
|
b13fd424a1 | ||
|
|
8651aed3bd | ||
|
|
8fe0714bfa | ||
|
|
0fbd549dc8 | ||
|
|
1c2d440114 | ||
|
|
270fbd5ea1 | ||
|
|
9be325f737 | ||
|
|
4d6a47d993 | ||
|
|
5c055864ad | ||
|
|
d1f9abbe9a | ||
|
|
5d91caaac1 | ||
|
|
5a9b9093a7 | ||
|
|
3834b9ff92 | ||
|
|
eb55f1315d | ||
|
|
4f6a900a80 | ||
|
|
19e6afd969 | ||
|
|
25ba7e113a | ||
|
|
7f2e8b70e8 | ||
|
|
26b88928e4 | ||
|
|
ad14c96cea | ||
|
|
c3671b7e54 | ||
|
|
a849f4045a | ||
|
|
47258ded49 | ||
|
|
43f5179a9f | ||
|
|
7b3620f06f | ||
|
|
69e52a135a | ||
|
|
a2db845061 | ||
|
|
2c8d33e396 | ||
|
|
c508abed00 | ||
|
|
d24b81bed2 | ||
|
|
73192d5226 | ||
|
|
8657f60a1d | ||
|
|
53b9efec3b | ||
|
|
5ce75010c3 | ||
|
|
c67b5d4694 | ||
|
|
b269c02e24 | ||
|
|
feb41cea6f | ||
|
|
5ad8722487 | ||
|
|
62f8241b09 | ||
|
|
e21c80c6e1 | ||
|
|
51b4f6d87f | ||
|
|
8286245984 | ||
|
|
fef30ef32c | ||
|
|
750501585f | ||
|
|
9d2f16ab73 | ||
|
|
7f481a08a4 | ||
|
|
5e61b6a750 | ||
|
|
46acdab81f | ||
|
|
e6bc0311ea | ||
|
|
5faf97f5a1 | ||
|
|
c394c6e165 | ||
|
|
bd09c19183 | ||
|
|
a9c42642e5 | ||
|
|
37fa83deec | ||
|
|
577c9d68f9 | ||
|
|
fb4e80e78d | ||
|
|
9e8fb7dda2 | ||
|
|
552f3f6c74 | ||
|
|
e1c3e65b71 | ||
|
|
38f788913f | ||
|
|
4b37accdbb | ||
|
|
4a26755f13 | ||
|
|
6794f9ace7 | ||
|
|
b57311d353 | ||
|
|
4d92dd0a7b | ||
|
|
42efe273dc | ||
|
|
9697840526 | ||
|
|
e011442e41 | ||
|
|
7bd957b496 | ||
|
|
e2c34a45d8 | ||
|
|
8fb4dc3bd3 | ||
|
|
fcaf50b739 | ||
|
|
ffeab60a85 | ||
|
|
b5de631433 | ||
|
|
e169bd274a | ||
|
|
3f1b9b6f96 | ||
|
|
07efe5a9f5 | ||
|
|
a8281fe132 | ||
|
|
7cb51cddf7 | ||
|
|
b501bdce6b | ||
|
|
a12e2cb919 | ||
|
|
91dac40dc8 | ||
|
|
d7be258f97 | ||
|
|
1b85f502d7 | ||
|
|
e0c98d9c9a | ||
|
|
4f09fdd987 | ||
|
|
a1138c5d76 | ||
|
|
54b2d0eeee | ||
|
|
822ae8369c | ||
|
|
e41026efe8 | ||
|
|
dd44f8939b | ||
|
|
b162fb8f27 | ||
|
|
ab402a16b5 | ||
|
|
8e2990c91c | ||
|
|
31b2984284 | ||
|
|
a9484a223a | ||
|
|
6e8218bcc2 | ||
|
|
bbc5b0dcec | ||
|
|
f4af3a6d82 | ||
|
|
19f0e195af | ||
|
|
9435e17e4d | ||
|
|
349d786ea9 | ||
|
|
39b31310ee | ||
|
|
b873d9b377 | ||
|
|
b1dc0437d8 | ||
|
|
f6554fc6d9 | ||
|
|
75f96ad376 | ||
|
|
3ba047addb | ||
|
|
574986ada7 | ||
|
|
9858919569 | ||
|
|
b4dfc9393e | ||
|
|
6f5d627a9b | ||
|
|
e30feb6845 | ||
|
|
a26cb33ef6 | ||
|
|
4c23dc8b6a | ||
|
|
c293382387 | ||
|
|
e870bfa977 | ||
|
|
414f5e5263 | ||
|
|
a1503a8921 | ||
|
|
9437dda1db | ||
|
|
57e7b05362 | ||
|
|
744a1ad6ad | ||
|
|
37dcf65eaf | ||
|
|
502b792d27 | ||
|
|
5b57479687 | ||
|
|
13c94ad5eb | ||
|
|
e2c29139cd | ||
|
|
0863b787f9 | ||
|
|
1a40ac73aa | ||
|
|
a5b06b4f50 | ||
|
|
5c971e4bae | ||
|
|
15600332bf | ||
|
|
30d7e88b33 | ||
|
|
3035303e80 | ||
|
|
31826d7726 | ||
|
|
81c70587a6 | ||
|
|
2c6f5ac89e | ||
|
|
dfb6a99e9e | ||
|
|
700c7b2795 | ||
|
|
4c0e748f3c | ||
|
|
58ca443093 | ||
|
|
292bce0919 | ||
|
|
262e886fde | ||
|
|
e8c28a5bd7 | ||
|
|
a0154149dd | ||
|
|
93e2f6a962 | ||
|
|
1039dc47f2 | ||
|
|
dade86a7b7 | ||
|
|
e8a7024328 | ||
|
|
a64b363a89 | ||
|
|
81cc2a130b | ||
|
|
7b5275e402 | ||
|
|
d92feb4cc4 | ||
|
|
e88fba6835 | ||
|
|
f369cf0797 | ||
|
|
f33b0c78b0 | ||
|
|
58860fe519 | ||
|
|
5bd81dc482 | ||
|
|
fd38754035 | ||
|
|
9083a70821 | ||
|
|
14de62ec05 | ||
|
|
8839d72d17 | ||
|
|
0ae01b4a1c | ||
|
|
0fa792f936 | ||
|
|
9338efa598 | ||
|
|
7fb7ae40f4 | ||
|
|
c2ebc4a3c9 | ||
|
|
2618670660 | ||
|
|
b5ca65f38f | ||
|
|
a1297a53f7 | ||
|
|
f870e6ae93 |
22
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
22
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
<!-- All PR should follow this template to allow a clean and transparent review -->
|
||||
<!-- Text placed between these delimiters is considered a comment and is not rendered -->
|
||||
|
||||
## Change Summary
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
## Related Task(s)
|
||||
<!-- optional: Link related Tasks on Phabricator. -->
|
||||
* https://vyos.dev/Txxxx
|
||||
|
||||
## Related PR(s)
|
||||
<!-- optional: Link here any PRs in other repositories that are related to this PR -->
|
||||
|
||||
## Backport
|
||||
<!-- optional: the PR should backport to this documentation branch -->
|
||||
|
||||
|
||||
|
||||
## Checklist:
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||
- [ ] I have read the [**CONTRIBUTING**](https://github.com/vyos/vyos-documentation/blob/current/CONTRIBUTING.md) document
|
||||
9
.github/styles/Google/AMPM.yml
vendored
9
.github/styles/Google/AMPM.yml
vendored
@ -1,9 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use 'AM' or 'PM' (preceded by a space)."
|
||||
link: 'https://developers.google.com/style/word-list'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\d{1,2}[AP]M'
|
||||
- '\d{1,2} ?[ap]m'
|
||||
- '\d{1,2} ?[aApP]\.[mM]\.'
|
||||
64
.github/styles/Google/Acronyms.yml
vendored
64
.github/styles/Google/Acronyms.yml
vendored
@ -1,64 +0,0 @@
|
||||
extends: conditional
|
||||
message: "Spell out '%s', if it's unfamiliar to the audience."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
level: suggestion
|
||||
ignorecase: false
|
||||
# Ensures that the existence of 'first' implies the existence of 'second'.
|
||||
first: '\b([A-Z]{3,5})\b'
|
||||
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
|
||||
# ... with the exception of these:
|
||||
exceptions:
|
||||
- API
|
||||
- ASP
|
||||
- CLI
|
||||
- CPU
|
||||
- CSS
|
||||
- CSV
|
||||
- DEBUG
|
||||
- DOM
|
||||
- DPI
|
||||
- FAQ
|
||||
- GCC
|
||||
- GDB
|
||||
- GET
|
||||
- GPU
|
||||
- GTK
|
||||
- GUI
|
||||
- HTML
|
||||
- HTTP
|
||||
- HTTPS
|
||||
- IDE
|
||||
- JAR
|
||||
- JSON
|
||||
- JSX
|
||||
- LESS
|
||||
- LLDB
|
||||
- NET
|
||||
- NOTE
|
||||
- NVDA
|
||||
- OSS
|
||||
- PATH
|
||||
- PDF
|
||||
- PHP
|
||||
- POST
|
||||
- RAM
|
||||
- REPL
|
||||
- RSA
|
||||
- SCM
|
||||
- SCSS
|
||||
- SDK
|
||||
- SQL
|
||||
- SSH
|
||||
- SSL
|
||||
- SVG
|
||||
- TBD
|
||||
- TCP
|
||||
- TODO
|
||||
- URI
|
||||
- URL
|
||||
- USB
|
||||
- UTF
|
||||
- XML
|
||||
- XSS
|
||||
- YAML
|
||||
- ZIP
|
||||
7
.github/styles/Google/Colons.yml
vendored
7
.github/styles/Google/Colons.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "'%s' should be in lowercase."
|
||||
link: 'https://developers.google.com/style/colons'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- ':\s[A-Z]'
|
||||
28
.github/styles/Google/Contractions.yml
vendored
28
.github/styles/Google/Contractions.yml
vendored
@ -1,28 +0,0 @@
|
||||
extends: substitution
|
||||
message: "Feel free to use '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/contractions'
|
||||
level: suggestion
|
||||
ignorecase: true
|
||||
swap:
|
||||
are not: aren't
|
||||
cannot: can't
|
||||
could not: couldn't
|
||||
did not: didn't
|
||||
do not: don't
|
||||
does not: doesn't
|
||||
has not: hasn't
|
||||
have not: haven't
|
||||
how is: how's
|
||||
is not: isn't
|
||||
it is: it's
|
||||
should not: shouldn't
|
||||
that is: that's
|
||||
they are: they're
|
||||
was not: wasn't
|
||||
we are: we're
|
||||
we have: we've
|
||||
were not: weren't
|
||||
what is: what's
|
||||
when is: when's
|
||||
where is: where's
|
||||
will not: won't
|
||||
9
.github/styles/Google/DateFormat.yml
vendored
9
.github/styles/Google/DateFormat.yml
vendored
@ -1,9 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use 'July 31, 2016' format, not '%s'."
|
||||
link: 'https://developers.google.com/style/dates-times'
|
||||
ignorecase: true
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}'
|
||||
- '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}'
|
||||
7
.github/styles/Google/Ellipses.yml
vendored
7
.github/styles/Google/Ellipses.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "In general, don't use an ellipsis."
|
||||
link: 'https://developers.google.com/style/ellipses'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '\.\.\.'
|
||||
8
.github/styles/Google/EmDash.yml
vendored
8
.github/styles/Google/EmDash.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't put a space before or after an em dash."
|
||||
link: 'https://developers.google.com/style/dashes'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '\s—'
|
||||
- '—\s'
|
||||
7
.github/styles/Google/EnDash.yml
vendored
7
.github/styles/Google/EnDash.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use an em dash ('—') instead of '–'."
|
||||
link: 'https://developers.google.com/style/dashes'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '–'
|
||||
7
.github/styles/Google/Exclamation.yml
vendored
7
.github/styles/Google/Exclamation.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't use exclamation points in text."
|
||||
link: 'https://developers.google.com/style/exclamation-points'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- '!'
|
||||
11
.github/styles/Google/FirstPerson.yml
vendored
11
.github/styles/Google/FirstPerson.yml
vendored
@ -1,11 +0,0 @@
|
||||
extends: existence
|
||||
message: "Avoid first-person pronouns such as '%s'."
|
||||
link: 'https://developers.google.com/style/pronouns#personal-pronouns'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
nonword: true
|
||||
tokens:
|
||||
- (?:^|\s)I\s
|
||||
- \bme\b
|
||||
- \bus\b
|
||||
- \bours\b
|
||||
9
.github/styles/Google/Gender.yml
vendored
9
.github/styles/Google/Gender.yml
vendored
@ -1,9 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't use '%s' as a gender-neutral pronoun."
|
||||
link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns'
|
||||
level: error
|
||||
ignorecase: true
|
||||
tokens:
|
||||
- he/she
|
||||
- s/he
|
||||
- \(s\)he
|
||||
45
.github/styles/Google/GenderBias.yml
vendored
45
.github/styles/Google/GenderBias.yml
vendored
@ -1,45 +0,0 @@
|
||||
extends: substitution
|
||||
message: "Consider using '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/inclusive-documentation'
|
||||
ignorecase: true
|
||||
level: error
|
||||
swap:
|
||||
(?:alumna|alumnus): graduate
|
||||
(?:alumnae|alumni): graduates
|
||||
air(?:m[ae]n|wom[ae]n): pilot(s)
|
||||
anchor(?:m[ae]n|wom[ae]n): anchor(s)
|
||||
authoress: author
|
||||
camera(?:m[ae]n|wom[ae]n): camera operator(s)
|
||||
chair(?:m[ae]n|wom[ae]n): chair(s)
|
||||
congress(?:m[ae]n|wom[ae]n): member(s) of congress
|
||||
door(?:m[ae]|wom[ae]n): concierge(s)
|
||||
draft(?:m[ae]n|wom[ae]n): drafter(s)
|
||||
fire(?:m[ae]n|wom[ae]n): firefighter(s)
|
||||
fisher(?:m[ae]n|wom[ae]n): fisher(s)
|
||||
fresh(?:m[ae]n|wom[ae]n): first-year student(s)
|
||||
garbage(?:m[ae]n|wom[ae]n): waste collector(s)
|
||||
lady lawyer: lawyer
|
||||
ladylike: courteous
|
||||
landlord: building manager
|
||||
mail(?:m[ae]n|wom[ae]n): mail carriers
|
||||
man and wife: husband and wife
|
||||
man enough: strong enough
|
||||
mankind: human kind
|
||||
manmade: manufactured
|
||||
manpower: personnel
|
||||
men and girls: men and women
|
||||
middle(?:m[ae]n|wom[ae]n): intermediary
|
||||
news(?:m[ae]n|wom[ae]n): journalist(s)
|
||||
ombuds(?:man|woman): ombuds
|
||||
oneupmanship: upstaging
|
||||
poetess: poet
|
||||
police(?:m[ae]n|wom[ae]n): police officer(s)
|
||||
repair(?:m[ae]n|wom[ae]n): technician(s)
|
||||
sales(?:m[ae]n|wom[ae]n): salesperson or sales people
|
||||
service(?:m[ae]n|wom[ae]n): soldier(s)
|
||||
steward(?:ess)?: flight attendant
|
||||
tribes(?:m[ae]n|wom[ae]n): tribe member(s)
|
||||
waitress: waiter
|
||||
woman doctor: doctor
|
||||
woman scientist[s]?: scientist(s)
|
||||
work(?:m[ae]n|wom[ae]n): worker(s)
|
||||
8
.github/styles/Google/HeadingPunctuation.yml
vendored
8
.github/styles/Google/HeadingPunctuation.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't put a period at the end of a heading."
|
||||
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
|
||||
nonword: true
|
||||
level: warning
|
||||
scope: heading
|
||||
tokens:
|
||||
- '[a-z0-9][.](?:\s|$)'
|
||||
26
.github/styles/Google/Headings.yml
vendored
26
.github/styles/Google/Headings.yml
vendored
@ -1,26 +0,0 @@
|
||||
extends: capitalization
|
||||
message: "'%s' should use sentence-style capitalization."
|
||||
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
|
||||
level: warning
|
||||
scope: heading
|
||||
match: $sentence
|
||||
exceptions:
|
||||
- Azure
|
||||
- CLI
|
||||
- Code
|
||||
- Cosmos
|
||||
- Docker
|
||||
- Emmet
|
||||
- I
|
||||
- Kubernetes
|
||||
- Linux
|
||||
- macOS
|
||||
- Marketplace
|
||||
- MongoDB
|
||||
- REPL
|
||||
- Studio
|
||||
- TypeScript
|
||||
- URLs
|
||||
- Visual
|
||||
- VS
|
||||
- Windows
|
||||
8
.github/styles/Google/Hyphens.yml
vendored
8
.github/styles/Google/Hyphens.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't place a space on either side of a hyphen (unless it's suspended)."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
level: warning
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\s-'
|
||||
- '-\s'
|
||||
9
.github/styles/Google/Latin.yml
vendored
9
.github/styles/Google/Latin.yml
vendored
@ -1,9 +0,0 @@
|
||||
extends: substitution
|
||||
message: "Use '%s' instead of '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
ignorecase: true
|
||||
level: error
|
||||
nonword: true
|
||||
swap:
|
||||
'\b(?:eg|e\.g\.)[\s,]': for example
|
||||
'\b(?:ie|i\.e\.)[\s,]': that is
|
||||
8
.github/styles/Google/LyHyphens.yml
vendored
8
.github/styles/Google/LyHyphens.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "'%s' doesn't need a hyphen."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
level: error
|
||||
ignorecase: false
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\s[^\s-]+ly-'
|
||||
7
.github/styles/Google/OptionalPlurals.yml
vendored
7
.github/styles/Google/OptionalPlurals.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't use plurals in parentheses such as in '%s'."
|
||||
link: 'https://developers.google.com/style/plurals-parentheses'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\b\w+\(s\)'
|
||||
7
.github/styles/Google/Ordinal.yml
vendored
7
.github/styles/Google/Ordinal.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Spell out all ordinal numbers ('%s') in text."
|
||||
link: 'https://developers.google.com/style/numbers'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- \d+(?:st|th|rd)
|
||||
7
.github/styles/Google/OxfordComma.yml
vendored
7
.github/styles/Google/OxfordComma.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use the Oxford comma in '%s'."
|
||||
link: 'https://developers.google.com/style/commas'
|
||||
scope: sentence
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:[^,]+,){1,}\s\w+\sand'
|
||||
7
.github/styles/Google/Parens.yml
vendored
7
.github/styles/Google/Parens.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use parentheses judiciously."
|
||||
link: 'https://developers.google.com/style/parentheses'
|
||||
nonword: true
|
||||
level: suggestion
|
||||
tokens:
|
||||
- '\(.+\)'
|
||||
184
.github/styles/Google/Passive.yml
vendored
184
.github/styles/Google/Passive.yml
vendored
@ -1,184 +0,0 @@
|
||||
extends: existence
|
||||
link: 'https://developers.google.com/style/voice'
|
||||
message: "In general, use active voice instead of passive voice ('%s')."
|
||||
ignorecase: true
|
||||
level: suggestion
|
||||
raw:
|
||||
- \b(am|are|were|being|is|been|was|be)\b\s*
|
||||
tokens:
|
||||
- '[\w]+ed'
|
||||
- awoken
|
||||
- beat
|
||||
- become
|
||||
- been
|
||||
- begun
|
||||
- bent
|
||||
- beset
|
||||
- bet
|
||||
- bid
|
||||
- bidden
|
||||
- bitten
|
||||
- bled
|
||||
- blown
|
||||
- born
|
||||
- bought
|
||||
- bound
|
||||
- bred
|
||||
- broadcast
|
||||
- broken
|
||||
- brought
|
||||
- built
|
||||
- burnt
|
||||
- burst
|
||||
- cast
|
||||
- caught
|
||||
- chosen
|
||||
- clung
|
||||
- come
|
||||
- cost
|
||||
- crept
|
||||
- cut
|
||||
- dealt
|
||||
- dived
|
||||
- done
|
||||
- drawn
|
||||
- dreamt
|
||||
- driven
|
||||
- drunk
|
||||
- dug
|
||||
- eaten
|
||||
- fallen
|
||||
- fed
|
||||
- felt
|
||||
- fit
|
||||
- fled
|
||||
- flown
|
||||
- flung
|
||||
- forbidden
|
||||
- foregone
|
||||
- forgiven
|
||||
- forgotten
|
||||
- forsaken
|
||||
- fought
|
||||
- found
|
||||
- frozen
|
||||
- given
|
||||
- gone
|
||||
- gotten
|
||||
- ground
|
||||
- grown
|
||||
- heard
|
||||
- held
|
||||
- hidden
|
||||
- hit
|
||||
- hung
|
||||
- hurt
|
||||
- kept
|
||||
- knelt
|
||||
- knit
|
||||
- known
|
||||
- laid
|
||||
- lain
|
||||
- leapt
|
||||
- learnt
|
||||
- led
|
||||
- left
|
||||
- lent
|
||||
- let
|
||||
- lighted
|
||||
- lost
|
||||
- made
|
||||
- meant
|
||||
- met
|
||||
- misspelt
|
||||
- mistaken
|
||||
- mown
|
||||
- overcome
|
||||
- overdone
|
||||
- overtaken
|
||||
- overthrown
|
||||
- paid
|
||||
- pled
|
||||
- proven
|
||||
- put
|
||||
- quit
|
||||
- read
|
||||
- rid
|
||||
- ridden
|
||||
- risen
|
||||
- run
|
||||
- rung
|
||||
- said
|
||||
- sat
|
||||
- sawn
|
||||
- seen
|
||||
- sent
|
||||
- set
|
||||
- sewn
|
||||
- shaken
|
||||
- shaven
|
||||
- shed
|
||||
- shod
|
||||
- shone
|
||||
- shorn
|
||||
- shot
|
||||
- shown
|
||||
- shrunk
|
||||
- shut
|
||||
- slain
|
||||
- slept
|
||||
- slid
|
||||
- slit
|
||||
- slung
|
||||
- smitten
|
||||
- sold
|
||||
- sought
|
||||
- sown
|
||||
- sped
|
||||
- spent
|
||||
- spilt
|
||||
- spit
|
||||
- split
|
||||
- spoken
|
||||
- spread
|
||||
- sprung
|
||||
- spun
|
||||
- stolen
|
||||
- stood
|
||||
- stridden
|
||||
- striven
|
||||
- struck
|
||||
- strung
|
||||
- stuck
|
||||
- stung
|
||||
- stunk
|
||||
- sung
|
||||
- sunk
|
||||
- swept
|
||||
- swollen
|
||||
- sworn
|
||||
- swum
|
||||
- swung
|
||||
- taken
|
||||
- taught
|
||||
- thought
|
||||
- thrived
|
||||
- thrown
|
||||
- thrust
|
||||
- told
|
||||
- torn
|
||||
- trodden
|
||||
- understood
|
||||
- upheld
|
||||
- upset
|
||||
- wed
|
||||
- wept
|
||||
- withheld
|
||||
- withstood
|
||||
- woken
|
||||
- won
|
||||
- worn
|
||||
- wound
|
||||
- woven
|
||||
- written
|
||||
- wrung
|
||||
7
.github/styles/Google/Periods.yml
vendored
7
.github/styles/Google/Periods.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't use periods with acronyms or initialisms such as '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '\b(?:[A-Z]\.){3,}'
|
||||
7
.github/styles/Google/Quotes.yml
vendored
7
.github/styles/Google/Quotes.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Commas and periods go inside quotation marks."
|
||||
link: 'https://developers.google.com/style/quotation-marks'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '"[^"]+"[.,?]'
|
||||
7
.github/styles/Google/Ranges.yml
vendored
7
.github/styles/Google/Ranges.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't add words such as 'from' or 'between' to describe a range of numbers."
|
||||
link: 'https://developers.google.com/style/hyphens'
|
||||
nonword: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:from|between)\s\d+\s?-\s?\d+'
|
||||
8
.github/styles/Google/Semicolons.yml
vendored
8
.github/styles/Google/Semicolons.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "Use semicolons judiciously."
|
||||
link: 'https://developers.google.com/style/semicolons'
|
||||
nonword: true
|
||||
scope: sentence
|
||||
level: suggestion
|
||||
tokens:
|
||||
- ';'
|
||||
11
.github/styles/Google/Slang.yml
vendored
11
.github/styles/Google/Slang.yml
vendored
@ -1,11 +0,0 @@
|
||||
extends: existence
|
||||
message: "Don't use internet slang abbreviations such as '%s'."
|
||||
link: 'https://developers.google.com/style/abbreviations'
|
||||
ignorecase: true
|
||||
level: error
|
||||
tokens:
|
||||
- 'tl;dr'
|
||||
- ymmv
|
||||
- rtfm
|
||||
- imo
|
||||
- fwiw
|
||||
8
.github/styles/Google/Spacing.yml
vendored
8
.github/styles/Google/Spacing.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "'%s' should have one space."
|
||||
link: 'https://developers.google.com/style/sentence-spacing'
|
||||
level: error
|
||||
nonword: true
|
||||
tokens:
|
||||
- '[.?!] {2,}[A-Z]'
|
||||
- '[.?!][A-Z]'
|
||||
8
.github/styles/Google/Spelling.yml
vendored
8
.github/styles/Google/Spelling.yml
vendored
@ -1,8 +0,0 @@
|
||||
extends: existence
|
||||
message: "In general, use American spelling instead of '%s'."
|
||||
link: 'https://developers.google.com/style/spelling'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
tokens:
|
||||
- '(?:\w+)nised?'
|
||||
- '(?:\w+)logue'
|
||||
7
.github/styles/Google/Units.yml
vendored
7
.github/styles/Google/Units.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Put a nonbreaking space between the number and the unit in '%s'."
|
||||
link: 'https://developers.google.com/style/units-of-measure'
|
||||
nonword: true
|
||||
level: error
|
||||
tokens:
|
||||
- \d+(?:GB|TB|MB)
|
||||
7
.github/styles/Google/Will.yml
vendored
7
.github/styles/Google/Will.yml
vendored
@ -1,7 +0,0 @@
|
||||
extends: existence
|
||||
message: "Avoid using '%s'."
|
||||
link: 'https://developers.google.com/style/tense'
|
||||
ignorecase: true
|
||||
level: warning
|
||||
tokens:
|
||||
- will
|
||||
79
.github/styles/Google/WordList.yml
vendored
79
.github/styles/Google/WordList.yml
vendored
@ -1,79 +0,0 @@
|
||||
extends: substitution
|
||||
message: "Use %s instead of '%s'."
|
||||
link: 'https://developers.google.com/style/word-list'
|
||||
level: warning
|
||||
ignorecase: false
|
||||
swap:
|
||||
'(?:API Console|dev|developer) key': "'API key'"
|
||||
'(?:cell ?phone|smart ?phone)': "'phone' or 'mobile phone'"
|
||||
'(?:dev|developer|APIs) console': "'API console'"
|
||||
'(?:e-mail|Email|E-mail)': "'email'"
|
||||
'(?:file ?path|path ?name)': "'path'"
|
||||
'(?:kill|terminate)': "'stop', 'exit', 'cancel', or 'end'"
|
||||
'(?:OAuth ?2|Oauth)': "'OAuth 2.0'"
|
||||
'(?:ok|Okay)': "'OK' or 'okay'"
|
||||
'(?:WiFi|wifi)': "'Wi-Fi'"
|
||||
'[\.]+apk': "'APK'"
|
||||
'3\-D': "'3D'"
|
||||
'Google (?:I\-O|IO)': "'Google I/O'"
|
||||
'tap (?:&|and) hold': "'touch & hold'"
|
||||
'un(?:check|select)': "'clear'"
|
||||
abort: "'stop', 'exit', 'cancel' or 'end'"
|
||||
above: "'preceding'"
|
||||
account name: "'username'"
|
||||
action bar: "'app bar'"
|
||||
admin: "'administrator'"
|
||||
Ajax: "'AJAX'"
|
||||
Android device: "'Android-powered device'"
|
||||
android: "'Android'"
|
||||
API explorer: "'APIs Explorer'"
|
||||
application: "'app'"
|
||||
approx\.: "'approximately'"
|
||||
authN: "'authentication'"
|
||||
authZ: "'authorization'"
|
||||
autoupdate: "'automatically update'"
|
||||
cellular data: "'mobile data'"
|
||||
cellular network: "'mobile network'"
|
||||
chapter: "'documents', 'pages', 'sections'"
|
||||
check box: "'checkbox'"
|
||||
check: "'select'"
|
||||
CLI: "'command-line tool'"
|
||||
click on: "'click' or 'click in'"
|
||||
Cloud: "'Google Cloud Platform' or 'GCP'"
|
||||
Container Engine: "'Kubernetes Engine'"
|
||||
content type: "'media type'"
|
||||
curated roles: "'predefined roles'"
|
||||
data are: "'data is'"
|
||||
Developers Console: "'Google API Console' or 'API Console'"
|
||||
disabled?: "'turn off' or 'off'"
|
||||
ephemeral IP address: "'ephemeral external IP address'"
|
||||
fewer data: "'less data'"
|
||||
file name: "'filename'"
|
||||
firewalls: "'firewall rules'"
|
||||
functionality: "'capability' or 'feature'"
|
||||
Google account: "'Google Account'"
|
||||
Google accounts: "'Google Accounts'"
|
||||
Googling: "'search with Google'"
|
||||
grayed-out: "'unavailable'"
|
||||
HTTPs: "'HTTPS'"
|
||||
in order to: "'to'"
|
||||
ingest: "'import' or 'load'"
|
||||
k8s: "'Kubernetes'"
|
||||
long press: "'touch & hold'"
|
||||
network IP address: "'internal IP address'"
|
||||
omnibox: "'address bar'"
|
||||
open-source: "'open source'"
|
||||
overview screen: "'recents screen'"
|
||||
regex: "'regular expression'"
|
||||
SHA1: "'SHA-1' or 'HAS-SHA1'"
|
||||
sign into: "'sign in to'"
|
||||
sign-?on: "'single sign-on'"
|
||||
static IP address: "'static external IP address'"
|
||||
stylesheet: "'style sheet'"
|
||||
synch: "'sync'"
|
||||
tablename: "'table name'"
|
||||
tablet: "'device'"
|
||||
touch: "'tap'"
|
||||
url: "'URL'"
|
||||
vs\.: "'versus'"
|
||||
World Wide Web: "'web'"
|
||||
16
.github/styles/Google/meta.json
vendored
16
.github/styles/Google/meta.json
vendored
@ -1,16 +0,0 @@
|
||||
{
|
||||
"author": "Joseph Kato",
|
||||
"description": "A Vale-compatible implementation of the Microsoft Writing Style Guide.",
|
||||
"email": "support@errata.ai",
|
||||
"lang": "en",
|
||||
"url": "https://github.com/errata-ai/Google/releases/latest/download/Google.zip",
|
||||
"feed": "https://github.com/errata-ai/Google/releases.atom",
|
||||
"issues": "https://github.com/errata-ai/Google/issues/new",
|
||||
"license": "MIT",
|
||||
"name": "Google",
|
||||
"sources": [
|
||||
"https://developers.google.com/style/"
|
||||
],
|
||||
"vale_version": ">=1.0.0",
|
||||
"coverage": 0.0
|
||||
}
|
||||
0
.github/styles/Google/vocab.txt
vendored
0
.github/styles/Google/vocab.txt
vendored
9
.github/styles/VyOS/Terminology.yml
vendored
9
.github/styles/VyOS/Terminology.yml
vendored
@ -1,9 +0,0 @@
|
||||
extends: substitution
|
||||
message: Prefer '%s' over '%s'
|
||||
ignorecase: false
|
||||
level: error
|
||||
swap:
|
||||
vyos: VyOS
|
||||
Vyos: VyOS
|
||||
VYOS: VyOS
|
||||
Gre: GRE
|
||||
177
.github/vyos-linter.py
vendored
177
.github/vyos-linter.py
vendored
@ -1,177 +0,0 @@
|
||||
import os
|
||||
import re
|
||||
import ipaddress
|
||||
import sys
|
||||
import ast
|
||||
|
||||
IPV4SEG = r'(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])'
|
||||
IPV4ADDR = r'\b(?:(?:' + IPV4SEG + r'\.){3,3}' + IPV4SEG + r')\b'
|
||||
IPV6SEG = r'(?:(?:[0-9a-fA-F]){1,4})'
|
||||
IPV6GROUPS = (
|
||||
r'(?:' + IPV6SEG + r':){7,7}' + IPV6SEG, # 1:2:3:4:5:6:7:8
|
||||
r'(?:\s' + IPV6SEG + r':){1,7}:', # 1:: 1:2:3:4:5:6:7::
|
||||
r'(?:' + IPV6SEG + r':){1,6}:' + IPV6SEG, # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8
|
||||
r'(?:' + IPV6SEG + r':){1,5}(?::' + IPV6SEG + r'){1,2}', # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8
|
||||
r'(?:' + IPV6SEG + r':){1,4}(?::' + IPV6SEG + r'){1,3}', # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8
|
||||
r'(?:' + IPV6SEG + r':){1,3}(?::' + IPV6SEG + r'){1,4}', # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8
|
||||
r'(?:' + IPV6SEG + r':){1,2}(?::' + IPV6SEG + r'){1,5}', # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8
|
||||
IPV6SEG + r':(?:(?::' + IPV6SEG + r'){1,6})', # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8
|
||||
r':(?:(?::' + IPV6SEG + r'){1,7}|:)', # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::
|
||||
r'fe80:(?::' + IPV6SEG + r'){0,4}%[0-9a-zA-Z]{1,}', # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index)
|
||||
r'::(?:ffff(?::0{1,4}){0,1}:){0,1}[^\s:]' + IPV4ADDR, # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses)
|
||||
r'(?:' + IPV6SEG + r':){1,4}:[^\s:]' + IPV4ADDR, # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address)
|
||||
)
|
||||
IPV6ADDR = '|'.join(['(?:{})'.format(g) for g in IPV6GROUPS[::-1]]) # Reverse rows for greedy match
|
||||
|
||||
MAC = r'([0-9A-F]{2}[:-]){5}([0-9A-F]{2})'
|
||||
|
||||
NUMBER = r"([\s']\d+[\s'])"
|
||||
|
||||
|
||||
def lint_mac(cnt, line):
|
||||
mac = re.search(MAC, line, re.I)
|
||||
if mac is not None:
|
||||
mac = mac.group()
|
||||
u_mac = re.search(r'((00)[:-](53)([:-][0-9A-F]{2}){4})', mac, re.I)
|
||||
m_mac = re.search(r'((90)[:-](10)([:-][0-9A-F]{2}){4})', mac, re.I)
|
||||
if u_mac is None and m_mac is None:
|
||||
return (f"Use MAC reserved for Documentation (RFC7042): {mac}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_ipv4(cnt, line):
|
||||
ip = re.search(IPV4ADDR, line, re.I)
|
||||
if ip is not None:
|
||||
ip = ipaddress.ip_address(ip.group().strip(' '))
|
||||
# https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_private
|
||||
if ip.is_private:
|
||||
return None
|
||||
if ip.is_multicast:
|
||||
return None
|
||||
if ip.is_global is False:
|
||||
return None
|
||||
return (f"Use IPv4 reserved for Documentation (RFC 5737) or private Space: {ip}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_ipv6(cnt, line):
|
||||
ip = re.search(IPV6ADDR, line, re.I)
|
||||
if ip is not None:
|
||||
ip = ipaddress.ip_address(ip.group().strip(' '))
|
||||
if ip.is_private:
|
||||
return None
|
||||
if ip.is_multicast:
|
||||
return None
|
||||
if ip.is_global is False:
|
||||
return None
|
||||
return (f"Use IPv6 reserved for Documentation (RFC 3849) or private Space: {ip}", cnt, 'error')
|
||||
|
||||
|
||||
def lint_AS(cnt, line):
|
||||
number = re.search(NUMBER, line, re.I)
|
||||
if number:
|
||||
pass
|
||||
# find a way to detect AS numbers
|
||||
|
||||
|
||||
def lint_linelen(cnt, line):
|
||||
line = line.rstrip()
|
||||
if len(line) > 80:
|
||||
return (f"Line too long: len={len(line)}", cnt, 'warning')
|
||||
|
||||
def handle_file_action(filepath):
|
||||
errors = []
|
||||
try:
|
||||
with open(filepath) as fp:
|
||||
line = fp.readline()
|
||||
cnt = 1
|
||||
test_line_lenght = True
|
||||
start_vyoslinter = True
|
||||
indentation = 0
|
||||
while line:
|
||||
# search for ignore linter comments in lines
|
||||
if ".. stop_vyoslinter" in line:
|
||||
start_vyoslinter = False
|
||||
if ".. start_vyoslinter" in line:
|
||||
start_vyoslinter = True
|
||||
if start_vyoslinter:
|
||||
# ignore every '.. code-block::' for line lenght
|
||||
# rst code-block have its own style in html the format in rst
|
||||
# and the build page must be the same
|
||||
if test_line_lenght is False:
|
||||
if len(line) > indentation:
|
||||
#print(f"'{line}'")
|
||||
#print(indentation)
|
||||
if line[indentation].isspace() is False:
|
||||
test_line_lenght = True
|
||||
|
||||
if ".. code-block::" in line:
|
||||
test_line_lenght = False
|
||||
indentation = 0
|
||||
for i in line:
|
||||
if i.isspace():
|
||||
indentation = indentation + 1
|
||||
else:
|
||||
break
|
||||
|
||||
err_mac = lint_mac(cnt, line.strip())
|
||||
# disable mac detection for the moment, too many false positives
|
||||
err_mac = None
|
||||
err_ip4 = lint_ipv4(cnt, line.strip())
|
||||
err_ip6 = lint_ipv6(cnt, line.strip())
|
||||
if test_line_lenght:
|
||||
err_len = lint_linelen(cnt, line)
|
||||
else:
|
||||
err_len = None
|
||||
if err_mac:
|
||||
errors.append(err_mac)
|
||||
if err_ip4:
|
||||
errors.append(err_ip4)
|
||||
if err_ip6:
|
||||
errors.append(err_ip6)
|
||||
if err_len:
|
||||
errors.append(err_len)
|
||||
|
||||
line = fp.readline()
|
||||
cnt += 1
|
||||
|
||||
# ensure linter was not stop on top and forgot to tun on again
|
||||
if start_vyoslinter == False:
|
||||
errors.append((f"Don't forgett to turn linter back on", cnt, 'error'))
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
if len(errors) > 0:
|
||||
'''
|
||||
"::{$type} file={$filename},line={$line},col=$column::{$log}"
|
||||
'''
|
||||
print(f"File: {filepath}")
|
||||
for error in errors:
|
||||
print(f"::{error[2]} file={filepath},line={error[1]}::{error[0]}")
|
||||
print('')
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
bool_error = True
|
||||
print('start')
|
||||
try:
|
||||
files = ast.literal_eval(sys.argv[1])
|
||||
for file in files:
|
||||
if file[-4:] in [".rst", ".txt"] and "_build" not in file:
|
||||
if handle_file_action(file) is False:
|
||||
bool_error = False
|
||||
except Exception as e:
|
||||
for root, dirs, files in os.walk("docs"):
|
||||
path = root.split(os.sep)
|
||||
for file in files:
|
||||
if file[-4:] in [".rst", ".txt"] and "_build" not in path:
|
||||
fpath = '/'.join(path)
|
||||
filepath = f"{fpath}/{file}"
|
||||
if handle_file_action(filepath) is False:
|
||||
bool_error = False
|
||||
|
||||
return bool_error
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if main() == False:
|
||||
exit(1)
|
||||
14
.github/workflows/auto-author-assign.yml
vendored
Normal file
14
.github/workflows/auto-author-assign.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
name: "PR Triage"
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened, ready_for_review, locked]
|
||||
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
assign-author:
|
||||
uses: vyos/.github/.github/workflows/assign-author.yml@current
|
||||
secrets: inherit
|
||||
17
.github/workflows/check-open-prs-conflict.yml
vendored
Normal file
17
.github/workflows/check-open-prs-conflict.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
name: "Open PRs Conflicts checker"
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- current
|
||||
- sagitta
|
||||
- circinus
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
check-pr-conflict-call:
|
||||
uses: vyos/.github/.github/workflows/check-open-prs-conflict.yml@current
|
||||
secrets: inherit
|
||||
14
.github/workflows/check-pr-conflicts.yml
vendored
Normal file
14
.github/workflows/check-pr-conflicts.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
name: "PR Conflicts checker"
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [synchronize]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-pr-conflict-call:
|
||||
uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@current
|
||||
secrets: inherit
|
||||
18
.github/workflows/cla-check.yml
vendored
Normal file
18
.github/workflows/cla-check.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: "CLA Check"
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
contents: read
|
||||
pull-requests: write
|
||||
statuses: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, closed]
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
call-cla-assistant:
|
||||
uses: vyos/vyos-cla-signatures/.github/workflows/cla-reusable.yml@current
|
||||
secrets: inherit
|
||||
10
.github/workflows/lint-doc.yml
vendored
Normal file
10
.github/workflows/lint-doc.yml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
name: Lint Doc
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint-doc:
|
||||
uses: vyos/.github/.github/workflows/lint-doc.yml@current
|
||||
secrets: inherit
|
||||
|
||||
|
||||
32
.github/workflows/main.yml
vendored
32
.github/workflows/main.yml
vendored
@ -1,32 +0,0 @@
|
||||
name: Linting
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: File Changes
|
||||
id: file_changes
|
||||
uses: trilom/file-changes-action@v1.2.3
|
||||
|
||||
#- name: Vale
|
||||
# uses: errata-ai/vale-action@v1.3.0
|
||||
# with:
|
||||
# files: '${{ steps.file_changes.outputs.files_modified }}'
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: run python based linter
|
||||
run: python .github/vyos-linter.py '${{ steps.file_changes.outputs.files_modified }}'
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
|
||||
|
||||
93
.github/workflows/submodules.yml
vendored
93
.github/workflows/submodules.yml
vendored
@ -5,12 +5,82 @@ on:
|
||||
# 06:00 UTC on Monday
|
||||
- cron: '0 6 * * 1'
|
||||
jobs:
|
||||
updatVyOS-1x:
|
||||
update_current:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
- name: update submodule
|
||||
run: |
|
||||
git submodule status
|
||||
git submodule update --init --force
|
||||
cd docs/_include/vyos-1x
|
||||
git checkout sagitta
|
||||
git pull
|
||||
git submodule status
|
||||
- name: update releasenotes
|
||||
env:
|
||||
PHABRICATOR_API: ${{ secrets.PHABRICATOR_API }}
|
||||
if: env.PHABRICATOR_API != null
|
||||
run: |
|
||||
pip3 install phabricator==0.8.0
|
||||
python3 docs/_ext/releasenotes.py -t ${{ secrets.PHABRICATOR_API }} -b circinus sagitta equuleus
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.PR_ACTION_DOCUMENTATION_SUBMODULE_UPDATE }}
|
||||
commit-message: "Github: update current branch"
|
||||
title: "Github: update current branch"
|
||||
body: |
|
||||
Autoupdate vyos-1x submodule
|
||||
update releasenotes
|
||||
branch: update-dependencies-current
|
||||
delete-branch: true
|
||||
|
||||
update_sagitta:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
ref: sagitta
|
||||
- name: update submodule
|
||||
run: |
|
||||
git submodule status
|
||||
git submodule update --init --force
|
||||
cd docs/_include/vyos-1x
|
||||
git checkout sagitta
|
||||
git pull
|
||||
git submodule status
|
||||
- name: update releasenotes
|
||||
env:
|
||||
PHABRICATOR_API: ${{ secrets.PHABRICATOR_API }}
|
||||
if: env.PHABRICATOR_API != null
|
||||
run: |
|
||||
pip3 install phabricator==0.8.0
|
||||
python3 docs/_ext/releasenotes.py -t ${{ secrets.PHABRICATOR_API }} -b sagitta equuleus
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.PR_ACTION_DOCUMENTATION_SUBMODULE_UPDATE }}
|
||||
commit-message: "Github: update sagitta branch"
|
||||
title: "Github: update sagitta branch"
|
||||
body: |
|
||||
Autoupdate vyos-1x submodule
|
||||
update releasenotes
|
||||
branch: update-dependencies-sagitta
|
||||
delete-branch: true
|
||||
|
||||
|
||||
update_equuleus:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
ref: equuleus
|
||||
- name: update submodule
|
||||
run: |
|
||||
git submodule status
|
||||
@ -19,14 +89,21 @@ jobs:
|
||||
git checkout equuleus
|
||||
git pull
|
||||
git submodule status
|
||||
- name: update releasenotes
|
||||
env:
|
||||
PHABRICATOR_API: ${{ secrets.PHABRICATOR_API }}
|
||||
if: env.PHABRICATOR_API != null
|
||||
run: |
|
||||
pip3 install phabricator==0.8.0
|
||||
python3 docs/_ext/releasenotes.py -t ${{ secrets.PHABRICATOR_API }} -b equuleus
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{secrets.GITHUB_TOKEN}}
|
||||
commit-message: Update vyos-1x submodule
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||
title: Update vyos-1x submodule
|
||||
token: ${{ secrets.PR_ACTION_DOCUMENTATION_SUBMODULE_UPDATE }}
|
||||
commit-message: "Github: update equuleus branch"
|
||||
title: "Github: update equuleus branch"
|
||||
body: |
|
||||
Autoupdate vyos-1x submodule
|
||||
branch: update-dependencies
|
||||
update releasenotes
|
||||
branch: update-dependencies-equuleus
|
||||
delete-branch: true
|
||||
|
||||
62
.github/workflows/update-translations.yml
vendored
Normal file
62
.github/workflows/update-translations.yml
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
name: "translation: generate, upload, download"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# 06:00 UTC on Monday
|
||||
- cron: '0 6 * * 1'
|
||||
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set Up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.11.x
|
||||
|
||||
- name: install lxml dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libxml2-dev libxslt-dev python3-lxml
|
||||
|
||||
- name: Install Dev Dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Build Documentation
|
||||
run: |
|
||||
cd docs
|
||||
make gettext
|
||||
cd ..
|
||||
|
||||
- name: upload pot files
|
||||
uses: localazy/upload@v1
|
||||
with:
|
||||
read_key: ${{ secrets.LOCALAZY_READ_KEY }}
|
||||
write_key: ${{ secrets.LOCALAZY_WRITE_KEY }}
|
||||
|
||||
- name: download translation files
|
||||
uses: localazy/download@v1
|
||||
with:
|
||||
read_key: ${{ secrets.LOCALAZY_READ_KEY }}
|
||||
write_key: ${{ secrets.LOCALAZY_WRITE_KEY }}
|
||||
|
||||
- name: set file ownership
|
||||
run: |
|
||||
sudo chown -R 1001 docs/_locale
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.PR_ACTION_DOCUMENTATION_SUBMODULE_UPDATE }}
|
||||
commit-message: "Github: update translations"
|
||||
title: "Github: update translations"
|
||||
body: |
|
||||
Generate, upload new and download translation files
|
||||
branch: update-translations-current
|
||||
delete-branch: true
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,10 +1,13 @@
|
||||
# Sphinx
|
||||
_build/
|
||||
localazy_private.json
|
||||
|
||||
# python virtualenv
|
||||
venv/
|
||||
ENV/
|
||||
.venv
|
||||
Pipfile.lock
|
||||
Pipfile
|
||||
|
||||
# put various editor ignores here
|
||||
.vscode/
|
||||
@ -12,6 +15,9 @@ ENV/
|
||||
*.vpw
|
||||
*.vpwhist
|
||||
*.vtg
|
||||
.idea/
|
||||
.idea
|
||||
.idea/*
|
||||
|
||||
# python cache files
|
||||
*.pyc
|
||||
|
||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,4 +1,4 @@
|
||||
[submodule "docs/_include/vyos-1x"]
|
||||
path = docs/_include/vyos-1x
|
||||
url = https://github.com/vyos/vyos-1x
|
||||
branch = equuleus
|
||||
branch = sagitta
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
python: "3.10"
|
||||
|
||||
# Build documentation in the docs/ directory with Sphinx
|
||||
sphinx:
|
||||
@ -19,9 +23,8 @@ formats:
|
||||
|
||||
# Optionally set the version of Python and requirements required to build your docs
|
||||
python:
|
||||
version: 3.7
|
||||
install:
|
||||
- requirements: requirements.txt
|
||||
|
||||
submodules:
|
||||
include: all
|
||||
include: all
|
||||
|
||||
2
CODEOWNERS
Normal file
2
CODEOWNERS
Normal file
@ -0,0 +1,2 @@
|
||||
# * @vyos/reviewers
|
||||
* @rebortg
|
||||
@ -1,4 +1,4 @@
|
||||
# Documentation Contribution
|
||||
|
||||
Please follow the guide in our documentation. It can be found here:
|
||||
https://docs.vyos.io/en/latest/contributing/documentation.html
|
||||
https://docs.vyos.io/en/latest/documentation.html
|
||||
|
||||
16
Pipfile
16
Pipfile
@ -1,16 +0,0 @@
|
||||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
sphinx-rtd-theme = "*"
|
||||
docutils = "*"
|
||||
lxml = "*"
|
||||
sphinx-notfound-page = "*"
|
||||
Sphinx = ">=1.4.3"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[requires]
|
||||
python_version = "3.9"
|
||||
68
README.md
68
README.md
@ -1,29 +1,38 @@
|
||||
Starting with VyOS 1.2 (`crux`) documentation is being migrated from the old wiki
|
||||
to ReadTheDocs. Documentation can be accessed via the following URL:
|
||||
Starting with VyOS 1.2 (`crux`) our documentation is hosted on ReadTheDocs at https://docs.vyos.io
|
||||
|
||||
* https://docs.vyos.io
|
||||
Our old wiki with documentation from the VyOS 1.1.x and early 1.2.0 era can still be accessed via the
|
||||
[Wayback Machine](https://web.archive.org/web/20200225171529/https://wiki.vyos.net/wiki/Main_Page)
|
||||
|
||||
# Build
|
||||
|
||||
[](https://docs.vyos.io/en/latest/?badge=latest)
|
||||
|
||||
## Native
|
||||
# Versions
|
||||
|
||||
To build the manual, run the following commands inside the `docs` folder:
|
||||
Our documentation repository follows the same branching scheme as the VyOS source itself.
|
||||
We maintain one documentation branch per VyOS release.
|
||||
The default branch that contains the most recent VyOS documentation is called `current`
|
||||
and matches the latest VyOS rolling release.
|
||||
|
||||
* `make html` for an HTML manual
|
||||
* `make latexpdf` for a LaTeX rendered PDF
|
||||
All new documentation enhancements go to the `current` branch. If those changes
|
||||
are beneficial for previous VyOS documentation versions they will be
|
||||
cherry-picked to the appropriate branch(es).
|
||||
|
||||
Required Debian Packages:
|
||||
* `latexmk`
|
||||
* `texlive-latex-recommended`
|
||||
* `texlive-fonts-recommended`
|
||||
* `texlive-latex-extra`
|
||||
* `sphinx`
|
||||
VyOS branches are named after constellations sorted by area from smallest to largest.
|
||||
There are 88 of them, here's the
|
||||
[complete list](https://en.wikipedia.org/wiki/IAU_designated_constellations_by_area).
|
||||
|
||||
### sphinx
|
||||
The branches we have had so far:
|
||||
|
||||
* 1.5.x: `circinus` (Compasses)
|
||||
* 1.4.x: `sagitta` (Arrow)
|
||||
* 1.3.x: `equuleus` (Little Horse)
|
||||
* 1.2.x: `crux` (Southern Cross)
|
||||
|
||||
### Sphinx
|
||||
Debian requires some extra steps for
|
||||
installing `sphinx`, `sphinx-autobuild` and `sphinx-rtd-theme` packages:
|
||||
installing `sphinx`, `sphinx-autobuild`, `sphinx-notfound-page`, `sphinx-panels`,
|
||||
`sphinx-rtd-theme`, `lxml`, and `myst-parser` packages:
|
||||
|
||||
First ensure that Python 2 & Python 3 are installed and Python 3 is the default:
|
||||
```bash
|
||||
@ -52,11 +61,10 @@ python --version
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
sudo pip install sphinx-rtd-theme
|
||||
sudo pip install sphinx-autobuild sphinx-notfound-page sphinx-panels sphinx-rtd-theme lxml myst-parser
|
||||
```
|
||||
|
||||
|
||||
Do the following to build the HTML and start a webserver:
|
||||
Do the following to build the HTML and start a web server:
|
||||
* Run `make livehtml` inside the `docs` folder
|
||||
|
||||
Then, to view the live output:
|
||||
@ -84,28 +92,26 @@ If the `vyos/vyos-documentation` container could not be found locally it will be
|
||||
automatically fetched from Dockerhub.
|
||||
|
||||
```bash
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs \
|
||||
-e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation make html
|
||||
$ git clone https://github.com/vyos/vyos-documentation.git
|
||||
|
||||
# sphinx autobuild
|
||||
$ docker run --rm -it -p 8000:8000 -v "$(pwd)":/vyos -w /vyos/docs -e \
|
||||
GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation make livehtml
|
||||
$ cd vyos-documentation
|
||||
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation make html
|
||||
|
||||
# For sphinx autobuild
|
||||
$ docker run --rm -it -p 8000:8000 -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation make livehtml
|
||||
```
|
||||
|
||||
### Test the docs
|
||||
|
||||
Discuss in this Phabricator task: [T1731](https://phabricator.vyos.net/T1731)
|
||||
|
||||
To test all files run:
|
||||
To test all files, run:
|
||||
|
||||
```bash
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs \
|
||||
-e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation vale .
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation vale .
|
||||
```
|
||||
|
||||
to test a specific file (e.g. `clustering.rst`)
|
||||
to test a specific file (e.g. `quick-start.rst`)
|
||||
|
||||
```bash
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) \
|
||||
-e GOSU_GID=$(id -g) vyos/vyos-documentation vale clustering.rst
|
||||
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos/vyos-documentation vale quick-start.rst
|
||||
```
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Must be run with --privileged flag
|
||||
# Recommended to run the container with a volume mapped
|
||||
# in order to easy exprort images built to "external" world
|
||||
FROM debian:buster
|
||||
FROM debian:12
|
||||
LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
@ -27,14 +27,14 @@ RUN apt-get update && apt-get install -y \
|
||||
curl \
|
||||
dos2unix
|
||||
|
||||
|
||||
|
||||
RUN pip3 install Sphinx
|
||||
RUN pip3 install sphinx-rtd-theme
|
||||
RUN pip3 install sphinx-autobuild
|
||||
RUN pip3 install sphinx-notfound-page
|
||||
RUN pip3 install lxml
|
||||
|
||||
RUN pip3 install --break-system-packages \
|
||||
Sphinx \
|
||||
sphinx-rtd-theme \
|
||||
sphinx-autobuild \
|
||||
sphinx-notfound-page \
|
||||
lxml \
|
||||
myst-parser \
|
||||
sphinx_design
|
||||
|
||||
# Cleanup
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
@ -42,15 +42,11 @@ RUN rm -rf /var/lib/apt/lists/*
|
||||
EXPOSE 8000
|
||||
|
||||
# Allow password-less 'sudo' for all users in group 'sudo'
|
||||
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
|
||||
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod
|
||||
|
||||
# vale
|
||||
RUN curl -sfL https://install.goreleaser.com/github.com/ValeLint/vale.sh | sh -s v1.7.1
|
||||
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers
|
||||
|
||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
|
||||
# we need to convert the entrypoint with appropriate line endings, else
|
||||
# We need to convert the entrypoint with appropriate line endings, else
|
||||
# there will be an error:
|
||||
# standard_init_linux.go:175: exec user process caused
|
||||
# "no such file or directory"
|
||||
|
||||
@ -23,10 +23,10 @@ if ! grep -q $NEW_GID /etc/group; then
|
||||
groupadd --gid $NEW_GID $USER_NAME
|
||||
fi
|
||||
|
||||
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
|
||||
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME --key UID_MIN=500
|
||||
usermod --append --groups sudo $USER_NAME
|
||||
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
|
||||
chown $NEW_UID:$NEW_GID /home/$USER_NAME
|
||||
export HOME=/home/$USER_NAME
|
||||
|
||||
# Execute process
|
||||
exec /usr/sbin/gosu $USER_NAME "$@"
|
||||
/usr/sbin/gosu $USER_NAME "$@"
|
||||
|
||||
@ -7,4 +7,6 @@ Sorry, We could not find a page.
|
||||
Try using the search box or go to the release homepage:
|
||||
|
||||
* `1.2.x (crux) <https://docs.vyos.io/en/crux/>`_
|
||||
* `rolling release (equuleus) <https://docs.vyos.io/en/latest/>`_
|
||||
* `1.3.x (equuleus) <https://docs.vyos.io/en/equuleus/>`_
|
||||
* `1.4.x (sagitta) <https://docs.vyos.io/en/sagitta/>`_
|
||||
* `rolling release (circinus) <https://docs.vyos.io/en/latest/>`_
|
||||
|
||||
@ -27,3 +27,7 @@ livehtml:
|
||||
sphinx-autobuild --host $(AUTOHOST) --port $(AUTOPORT) $(AUTOOPTS) \
|
||||
"$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
|
||||
defaultvalue: export VYOS_DEFAULT=True
|
||||
defaultvalue:
|
||||
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
68
docs/_ext/autosectionlabel.py
Normal file
68
docs/_ext/autosectionlabel.py
Normal file
@ -0,0 +1,68 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
sphinx.ext.autosectionlabel
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allow reference sections by :ref: role using its title.
|
||||
|
||||
:copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
|
||||
from sphinx version 1.8.4 to get readthedocs working
|
||||
"""
|
||||
|
||||
from docutils import nodes
|
||||
|
||||
from sphinx.locale import __
|
||||
from sphinx.util import logging
|
||||
from sphinx.util.nodes import clean_astext
|
||||
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Dict # NOQA
|
||||
from sphinx.application import Sphinx # NOQA
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Dict # NOQA
|
||||
from sphinx.application import Sphinx # NOQA
|
||||
|
||||
|
||||
def register_sections_as_label(app, document):
|
||||
# type: (Sphinx, nodes.Node) -> None
|
||||
labels = app.env.domaindata['std']['labels']
|
||||
anonlabels = app.env.domaindata['std']['anonlabels']
|
||||
for node in document.traverse(nodes.section):
|
||||
labelid = node['ids'][0]
|
||||
docname = app.env.docname
|
||||
ref_name = getattr(node[0], 'rawsource', node[0].astext())
|
||||
if app.config.autosectionlabel_prefix_document:
|
||||
name = nodes.fully_normalize_name(docname + ':' + ref_name)
|
||||
else:
|
||||
name = nodes.fully_normalize_name(ref_name)
|
||||
sectname = clean_astext(node[0])
|
||||
|
||||
if name in labels:
|
||||
if len(node['ids']) > 1:
|
||||
continue
|
||||
logger.warning(__('duplicate label %s, other instance in %s'),
|
||||
name, app.env.doc2path(labels[name][0]),
|
||||
location=node)
|
||||
|
||||
anonlabels[name] = docname, labelid
|
||||
labels[name] = docname, labelid, sectname
|
||||
|
||||
|
||||
def setup(app):
|
||||
# type: (Sphinx) -> Dict[unicode, Any]
|
||||
app.add_config_value('autosectionlabel_prefix_document', False, 'env')
|
||||
app.connect('doctree-read', register_sections_as_label)
|
||||
|
||||
return {
|
||||
'version': 'builtin',
|
||||
'parallel_read_safe': True,
|
||||
'parallel_write_safe': True,
|
||||
}
|
||||
116
docs/_ext/releasenotes.py
Normal file
116
docs/_ext/releasenotes.py
Normal file
@ -0,0 +1,116 @@
|
||||
from datetime import datetime
|
||||
from phabricator import Phabricator
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-t", "--token", type=str, help="API token", required=True)
|
||||
parser.add_argument("-b", "--branch", nargs="+", help="List of github branches", required=True)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
phab = Phabricator(host='https://vyos.dev/api/', token=args.token)
|
||||
|
||||
'''
|
||||
# code to find new PHIDs
|
||||
# show project ids
|
||||
projects = phab.project.query(limit=200)
|
||||
for project in projects.response['data']:
|
||||
print(projects.response['data'][project]['phid'], projects.response['data'][project]['name'])
|
||||
'''
|
||||
|
||||
# find phid here https://vyos.dev/conduit/method/project.query/
|
||||
projects = {
|
||||
'equuleus': {
|
||||
'phid': 'PHID-PROJ-zu26ui4vbmvykpjtepij',
|
||||
'name': '1.3 Equuleus',
|
||||
'filename': 'docs/changelog/1.3.rst',
|
||||
'tasks': [],
|
||||
'releasenotes': []
|
||||
},
|
||||
'sagitta': {
|
||||
'phid': 'PHID-PROJ-m4utvy456e2shcprpq3b',
|
||||
'name': '1.4 Sagitta',
|
||||
'filename': 'docs/changelog/1.4.rst',
|
||||
'tasks': [],
|
||||
'releasenotes': []
|
||||
},
|
||||
'circinus': {
|
||||
'phid': 'PHID-PROJ-cfi33xi3uijxyjsxoqzv',
|
||||
'name': '1.5 Circinus',
|
||||
'filename': 'docs/changelog/1.5.rst',
|
||||
'tasks': [],
|
||||
'releasenotes': []
|
||||
}
|
||||
}
|
||||
|
||||
for b in args.branch:
|
||||
if b not in projects.keys():
|
||||
raise Exception('given branch not defined')
|
||||
|
||||
# get project tasks
|
||||
|
||||
for project in projects:
|
||||
if project not in args.branch:
|
||||
continue
|
||||
|
||||
_after = None
|
||||
|
||||
# get tasks from API
|
||||
while True:
|
||||
#print(f'get {_after}')
|
||||
_tasks = phab.maniphest.search(
|
||||
constraints={
|
||||
'projects': [projects[project]['phid']],
|
||||
#'statuses': ['closed'],
|
||||
},
|
||||
after=_after)
|
||||
|
||||
projects[project]['tasks'].extend(_tasks.response['data'])
|
||||
_after = _tasks.response['cursor']['after']
|
||||
if _after is None:
|
||||
break
|
||||
|
||||
# prepare tasks for release notes
|
||||
for task in projects[project]['tasks']:
|
||||
if task['fields']['status']['value'] in ['resolved']:
|
||||
#_info = phab.maniphest.info(task_id=task['id'])
|
||||
#_info = _info.response
|
||||
releasenote = {}
|
||||
releasenote['type'] = task['fields']['subtype']
|
||||
date = datetime.fromtimestamp(task['fields']['dateClosed'])
|
||||
releasenote['closedate'] = date.strftime('%Y-%m-%d')
|
||||
releasenote['name'] = task['fields']['name']
|
||||
releasenote['id'] = task['id']
|
||||
#print(f"{project}: {task['fields']['status']} {task['id']}")
|
||||
projects[project]['releasenotes'].append(releasenote)
|
||||
|
||||
projects[project]['releasenotes'] = sorted(
|
||||
projects[project]['releasenotes'], key = lambda x: x['closedate'],
|
||||
reverse=True
|
||||
)
|
||||
|
||||
rst_text = "#" * len(projects[project]['name'])
|
||||
rst_text += f"\n{projects[project]['name']}\n"
|
||||
rst_text += "#" * len(projects[project]['name'])
|
||||
rst_text += "\n"
|
||||
|
||||
rst_text += "\n"
|
||||
rst_text += "..\n"
|
||||
rst_text += " Please don't add anything by hand.\n"
|
||||
rst_text += " This file is managed by the script:\n"
|
||||
rst_text += " _ext/releasenotes.py\n"
|
||||
|
||||
date = None
|
||||
for rn in projects[project]['releasenotes']:
|
||||
if date != rn['closedate']:
|
||||
rst_text += "\n\n"
|
||||
rst_text += f"{rn['closedate']}\n"
|
||||
underline = '=' * len(rn['closedate'])
|
||||
rst_text += f"{underline}\n\n"
|
||||
date = rn['closedate']
|
||||
rst_text += f"* :vytask:`T{rn['id']}` ``({rn['type']}): {rn['name'].strip()}``\n"
|
||||
|
||||
f = open(projects[project]['filename'], "w")
|
||||
f.write(rst_text)
|
||||
f.close()
|
||||
@ -1,14 +1,13 @@
|
||||
'''
|
||||
generate json with all commands from xml for vyos documentation coverage
|
||||
|
||||
'''
|
||||
|
||||
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
import logging
|
||||
import datetime
|
||||
|
||||
from io import BytesIO
|
||||
from lxml import etree as ET
|
||||
@ -33,11 +32,32 @@ input_data = [
|
||||
}
|
||||
]
|
||||
|
||||
vyos_commands_dir = "_include/coverage"
|
||||
|
||||
node_data = {
|
||||
'cfgcmd': {},
|
||||
'opcmd': {},
|
||||
}
|
||||
|
||||
|
||||
def get_vyos_commands():
|
||||
return_data = None
|
||||
for (dirpath, dirnames, filenames) in os.walk(vyos_commands_dir):
|
||||
for file in filenames:
|
||||
with open(f"{vyos_commands_dir}/{file}") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if not return_data:
|
||||
return_data = data
|
||||
|
||||
# find latestes export
|
||||
if datetime.datetime.fromisoformat(return_data['date']) < datetime.datetime.fromisoformat(data['date']):
|
||||
return_data = data
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
|
||||
def get_properties(p):
|
||||
props = {}
|
||||
props['valueless'] = False
|
||||
@ -155,12 +175,18 @@ def get_properties(p):
|
||||
|
||||
def process_node(n, f):
|
||||
|
||||
|
||||
props_elem = n.find("properties")
|
||||
children = n.find("children")
|
||||
command = n.find("command")
|
||||
children_nodes = []
|
||||
owner = n.get("owner")
|
||||
node_type = n.tag
|
||||
defaultvalue = n.find("defaultValue")
|
||||
|
||||
if defaultvalue is not None:
|
||||
defaultvalue = defaultvalue.text
|
||||
|
||||
|
||||
name = n.get("name")
|
||||
props = get_properties(props_elem)
|
||||
@ -198,7 +224,9 @@ def process_node(n, f):
|
||||
'children': children_nodes,
|
||||
'props': props,
|
||||
'command': test_command,
|
||||
'filename': f
|
||||
'filename': f,
|
||||
'defaultvalue': defaultvalue
|
||||
|
||||
}
|
||||
return node
|
||||
|
||||
@ -212,9 +240,11 @@ def create_commands(data, parent_list=[], level=0):
|
||||
'tag_help': [],
|
||||
'level': level,
|
||||
'no_childs': False,
|
||||
'filename': None
|
||||
'filename': None,
|
||||
'defaultvalue': None,
|
||||
}
|
||||
command['filename'] = data['filename']
|
||||
command['defaultvalue'] = data['defaultvalue']
|
||||
command['name'].extend(parent_list)
|
||||
command['name'].append(data['name'])
|
||||
|
||||
@ -298,7 +328,7 @@ def get_working_commands():
|
||||
if not validator.validate(xml):
|
||||
print(validator.error_log)
|
||||
print("Interface definition file {0} does not match the schema!".format(f))
|
||||
sys.exit(1)
|
||||
#sys.exit(1)
|
||||
except Exception as e:
|
||||
print("Failed to load the XML schema {0}".format(entry['schema_file']))
|
||||
print(e)
|
||||
@ -328,6 +358,7 @@ def get_working_commands():
|
||||
'children': [],
|
||||
'command': node_data[kind][entry]['command'],
|
||||
'filename': node_data[kind][entry]['filename'],
|
||||
'defaultvalue': node_data[kind][entry]['defaultvalue']
|
||||
}
|
||||
config_tree_new[kind][node_0]['children'].extend(node_data[kind][entry]['children'])
|
||||
|
||||
@ -337,7 +368,8 @@ def get_working_commands():
|
||||
}
|
||||
for kind in config_tree_new:
|
||||
for e in config_tree_new[kind]:
|
||||
result[kind].extend(create_commands(config_tree_new[kind][e]))
|
||||
if config_tree_new[kind][e]['name']:
|
||||
result[kind].extend(create_commands(config_tree_new[kind][e]))
|
||||
|
||||
for cmd in result['cfgcmd']:
|
||||
cmd['cmd'] = " ".join(cmd['name'])
|
||||
@ -377,6 +409,4 @@ def override_element(l: list):
|
||||
el.getparent().remove(el)
|
||||
|
||||
if __name__ == "__main__":
|
||||
res = get_working_commands()
|
||||
print(json.dumps(res))
|
||||
#print(res['cfgcmd'][0])
|
||||
get_vyos_commands()
|
||||
|
||||
@ -1,20 +1,25 @@
|
||||
import re
|
||||
import json
|
||||
import os
|
||||
from datetime import datetime
|
||||
from unittest import defaultTestLoader
|
||||
from docutils import io, nodes, utils, statemachine
|
||||
from docutils.parsers.rst.roles import set_classes
|
||||
from docutils.parsers.rst import Directive, directives, states
|
||||
|
||||
from sphinx.util.docutils import SphinxDirective
|
||||
|
||||
from testcoverage import get_working_commands
|
||||
from testcoverage import get_working_commands, get_vyos_commands
|
||||
|
||||
from sphinx.util import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def setup(app):
|
||||
|
||||
app.add_config_value(
|
||||
'vyos_phabricator_url',
|
||||
'https://phabricator.vyos.net/',
|
||||
'https://vyos.dev/',
|
||||
'html'
|
||||
)
|
||||
|
||||
@ -24,6 +29,11 @@ def setup(app):
|
||||
#{"cfgcmd": [], "opcmd": []},
|
||||
'html'
|
||||
)
|
||||
app.add_config_value(
|
||||
'vyos_commands',
|
||||
get_vyos_commands(),
|
||||
'html'
|
||||
)
|
||||
app.add_config_value(
|
||||
'vyos_coverage',
|
||||
{
|
||||
@ -73,7 +83,9 @@ def setup(app):
|
||||
app.add_directive('cfgcmd', CfgCmdDirective)
|
||||
app.add_directive('opcmd', OpCmdDirective)
|
||||
app.add_directive('cmdinclude', CfgInclude)
|
||||
app.add_directive('cmdincludemd', CmdInclude)
|
||||
app.connect('doctree-resolved', process_cmd_nodes)
|
||||
app.connect('doctree-read', handle_document_meta_data)
|
||||
|
||||
class CfgcmdList(nodes.General, nodes.Element):
|
||||
pass
|
||||
@ -209,7 +221,7 @@ class CfgInclude(SphinxDirective):
|
||||
path = os.path.join(self.standard_include_path, path[1:-1])
|
||||
path = os.path.normpath(os.path.join(source_dir, path))
|
||||
path = utils.relative_path(None, path)
|
||||
path = nodes.reprunicode(path)
|
||||
path = str(path)
|
||||
encoding = self.options.get(
|
||||
'encoding', self.state.document.settings.input_encoding)
|
||||
e_handler=self.state.document.settings.input_encoding_error_handler
|
||||
@ -314,6 +326,47 @@ class CfgInclude(SphinxDirective):
|
||||
self.state_machine.insert_input(new_include_lines, path)
|
||||
return []
|
||||
|
||||
class CmdInclude(SphinxDirective):
|
||||
'''
|
||||
2nd CMDInclude only for Markdown, just the migration process
|
||||
'''
|
||||
|
||||
has_content = False
|
||||
required_arguments = 1
|
||||
optional_arguments = 0
|
||||
option_spec = {
|
||||
'var0': str,
|
||||
'var1': str,
|
||||
'var2': str,
|
||||
'var3': str,
|
||||
'var4': str,
|
||||
'var5': str,
|
||||
'var6': str,
|
||||
'var7': str,
|
||||
'var8': str,
|
||||
'var9': str
|
||||
}
|
||||
|
||||
def run(self):
|
||||
include_file = self.env.relfn2path(self.arguments[0])
|
||||
|
||||
f = open(include_file[1], "r")
|
||||
file_content = f.readlines()
|
||||
f.close()
|
||||
|
||||
new_include_lines = []
|
||||
for line in file_content:
|
||||
for i in range(10):
|
||||
value = self.options.get(f'var{i}','')
|
||||
if value == '':
|
||||
line = re.sub('\s?{{\s?var' + str(i) + '\s?}}',value,line)
|
||||
else:
|
||||
line = re.sub('{{\s?var' + str(i) + '\s?}}',value,line)
|
||||
new_include_lines.append(line)
|
||||
|
||||
self.state._renderer.nested_render_text(''.join(new_include_lines), self.lineno)
|
||||
return []
|
||||
|
||||
|
||||
class CfgcmdlistDirective(Directive):
|
||||
has_content = False
|
||||
@ -346,6 +399,21 @@ class OpcmdlistDirective(Directive):
|
||||
return [oplist]
|
||||
|
||||
|
||||
def get_default_value(title_text, config, cfgmode):
|
||||
title_text = strip_cmd(title_text)
|
||||
for cmd in config.vyos_working_commands[cfgmode]:
|
||||
cmd_joined = ' '.join(cmd['name'])
|
||||
cmd_striped = strip_cmd(cmd_joined)
|
||||
if "table-size" in cmd['name']:
|
||||
pass
|
||||
#print(cmd)
|
||||
#print(cmd_striped)
|
||||
#print(title_text)
|
||||
#print()
|
||||
if cmd_striped == title_text:
|
||||
if cmd['defaultvalue']:
|
||||
return cmd['defaultvalue']
|
||||
return None
|
||||
|
||||
class CmdDirective(SphinxDirective):
|
||||
|
||||
@ -358,19 +426,31 @@ class CmdDirective(SphinxDirective):
|
||||
content_list = []
|
||||
title_text = ''
|
||||
content_text = ''
|
||||
defaultvalue = None
|
||||
has_body = False
|
||||
|
||||
cfgmode = self.custom_class + "cmd"
|
||||
try:
|
||||
if '' in self.content:
|
||||
index = self.content.index('')
|
||||
title_list = self.content[0:index]
|
||||
content_list = self.content[index + 1:]
|
||||
|
||||
if '' in self.content:
|
||||
index = self.content.index('')
|
||||
title_list = self.content[0:index]
|
||||
content_list = self.content[index + 1:]
|
||||
title_text = ' '.join(title_list)
|
||||
content_text = '\n'.join(content_list)
|
||||
has_body = True
|
||||
else:
|
||||
title_text = ' '.join(self.content)
|
||||
title_text = ' '.join(title_list)
|
||||
content_text = content_text + '\n'.join(content_list)
|
||||
has_body = True
|
||||
else:
|
||||
title_list = self.content
|
||||
title_text = ' '.join(title_list)
|
||||
except Exception as e:
|
||||
print("error", e)
|
||||
|
||||
# render defaultvalue
|
||||
if os.getenv('VYOS_DEFAULT') or ':defaultvalue:' in title_text:
|
||||
value = get_default_value(title_list, self.config, cfgmode)
|
||||
title_text = title_text.replace(":defaultvalue:", '')
|
||||
if value:
|
||||
defaultvalue = f"default: {value}\n"
|
||||
|
||||
anchor_id = nodes.make_id(self.custom_class + "cmd-" + title_text)
|
||||
target = nodes.target(ids=[anchor_id])
|
||||
@ -392,6 +472,11 @@ class CmdDirective(SphinxDirective):
|
||||
heading_element['classes'] += [self.custom_class + 'cmd-heading']
|
||||
|
||||
panel_element.append(heading_element)
|
||||
if defaultvalue:
|
||||
defaultvalue_element = nodes.paragraph(text=defaultvalue)
|
||||
defaultvalue_element['classes'] = ["defaultvalue"]
|
||||
panel_element.append(defaultvalue_element)
|
||||
|
||||
|
||||
append_list = {
|
||||
'docname': self.env.docname,
|
||||
@ -432,26 +517,53 @@ class CfgCmdDirective(CmdDirective):
|
||||
|
||||
|
||||
def strip_cmd(cmd, debug=False):
|
||||
|
||||
# find all [...] and also nested [...]
|
||||
# regex and str.find() had problems with nested [...]
|
||||
appearance = 0
|
||||
cmd_new = ""
|
||||
for c in cmd:
|
||||
if c == "[":
|
||||
appearance = appearance + 1
|
||||
if appearance == 0:
|
||||
cmd_new = f"{cmd_new}{c}"
|
||||
if c == "]":
|
||||
appearance = appearance - 1
|
||||
|
||||
# only if all [..] will be delete if appearance > 0 there is a syntax error
|
||||
if appearance == 0:
|
||||
cmd = cmd_new
|
||||
|
||||
# same for <...>
|
||||
appearance = 0
|
||||
cmd_new = ""
|
||||
for c in cmd:
|
||||
if c == "<":
|
||||
appearance = appearance + 1
|
||||
if appearance == 0:
|
||||
cmd_new = f"{cmd_new}{c}"
|
||||
if c == ">":
|
||||
appearance = appearance - 1
|
||||
|
||||
# only if all <..> will be delete if appearance > 0 there is a syntax error
|
||||
if appearance == 0:
|
||||
cmd = cmd_new
|
||||
|
||||
if debug:
|
||||
print("")
|
||||
print(cmd)
|
||||
cmd = re.sub('set','',cmd)
|
||||
cmd = re.sub('^set','',cmd)
|
||||
if debug:
|
||||
print(cmd)
|
||||
#while " | " in cmd:
|
||||
cmd = re.sub('\s+\|\s+','',cmd)
|
||||
if debug:
|
||||
print(cmd)
|
||||
cmd = re.sub('<\S*>','',cmd)
|
||||
if debug:
|
||||
print(cmd)
|
||||
cmd = re.sub('\[\S\]','',cmd)
|
||||
cmd = cmd.replace('|','')
|
||||
if debug:
|
||||
print(cmd)
|
||||
cmd = re.sub('\s+','',cmd)
|
||||
cmd = cmd.replace(':defaultvalue:','')
|
||||
if debug:
|
||||
print(cmd)
|
||||
print("")
|
||||
|
||||
return cmd
|
||||
|
||||
def build_row(app, fromdocname, rowdata):
|
||||
@ -467,10 +579,10 @@ def build_row(app, fromdocname, rowdata):
|
||||
entry += nodes.paragraph(text=item)
|
||||
elif isinstance(cell, bool):
|
||||
if cell:
|
||||
entry += nodes.paragraph(text="")
|
||||
entry += nodes.paragraph(text="✔")
|
||||
entry['classes'] = ['coverage-ok']
|
||||
else:
|
||||
entry += nodes.paragraph(text="")
|
||||
entry += nodes.paragraph(text="✕")
|
||||
entry['classes'] = ['coverage-fail']
|
||||
else:
|
||||
entry += nodes.paragraph(text=cell)
|
||||
@ -478,30 +590,28 @@ def build_row(app, fromdocname, rowdata):
|
||||
|
||||
|
||||
|
||||
def process_coverage(app, fromdocname, doccmd, xmlcmd, cli_type):
|
||||
def process_coverage(app, fromdocname, doccmd, xmlcmd, vyoscmd, cli_type):
|
||||
coverage_list = {}
|
||||
int_docs = 0
|
||||
int_xml = 0
|
||||
strip_true_list = []
|
||||
for cmd in doccmd:
|
||||
coverage_item = {
|
||||
'doccmd': None,
|
||||
'xmlcmd': None,
|
||||
'vyoscmd': None,
|
||||
'doccmd_item': None,
|
||||
'xmlcmd_item': None,
|
||||
'vyoscmd_item': None,
|
||||
'indocs': False,
|
||||
'inxml': False,
|
||||
'invyos': False,
|
||||
'xmlfilename': None
|
||||
}
|
||||
coverage_item['doccmd'] = cmd['cmd']
|
||||
coverage_item['doccmd_item'] = cmd
|
||||
coverage_item['indocs'] = True
|
||||
int_docs += 1
|
||||
|
||||
coverage_list[strip_cmd(cmd['cmd'])] = dict(coverage_item)
|
||||
|
||||
|
||||
#print(coverage_list.keys())
|
||||
|
||||
for cmd in xmlcmd:
|
||||
|
||||
strip = strip_cmd(cmd['cmd'])
|
||||
@ -509,34 +619,69 @@ def process_coverage(app, fromdocname, doccmd, xmlcmd, cli_type):
|
||||
coverage_item = {
|
||||
'doccmd': None,
|
||||
'xmlcmd': None,
|
||||
'vyoscmd': None,
|
||||
'doccmd_item': None,
|
||||
'xmlcmd_item': None,
|
||||
'vyoscmd_item': None,
|
||||
'indocs': False,
|
||||
'inxml': False,
|
||||
'invyos': False,
|
||||
'xmlfilename': None
|
||||
}
|
||||
coverage_item['xmlcmd'] = cmd['cmd']
|
||||
coverage_item['xmlcmd_item'] = cmd
|
||||
coverage_item['inxml'] = True
|
||||
coverage_item['xmlfilename'] = cmd['filename']
|
||||
int_xml += 1
|
||||
coverage_list[strip] = dict(coverage_item)
|
||||
else:
|
||||
coverage_list[strip]['xmlcmd'] = cmd['cmd']
|
||||
coverage_list[strip]['xmlcmd_item'] = cmd
|
||||
coverage_list[strip]['inxml'] = True
|
||||
coverage_list[strip]['xmlfilename'] = cmd['filename']
|
||||
int_xml += 1
|
||||
|
||||
|
||||
for item in vyoscmd[cli_type]:
|
||||
cmd = ' '.join(item['cmd'])
|
||||
strip = strip_cmd(cmd)
|
||||
if strip not in coverage_list.keys():
|
||||
coverage_item = {
|
||||
'doccmd': None,
|
||||
'xmlcmd': None,
|
||||
'vyoscmd': None,
|
||||
'doccmd_item': None,
|
||||
'xmlcmd_item': None,
|
||||
'vyoscmd_item': None,
|
||||
'indocs': False,
|
||||
'inxml': False,
|
||||
'invyos': False,
|
||||
'xmlfilename': None
|
||||
}
|
||||
coverage_item['vyoscmd'] = cmd
|
||||
coverage_item['invyos'] = True
|
||||
coverage_list[strip] = dict(coverage_item)
|
||||
else:
|
||||
coverage_list[strip]['vyoscmd'] = cmd
|
||||
coverage_list[strip]['invyos'] = True
|
||||
if coverage_list[strip]['indocs'] and coverage_list[strip]['inxml']:
|
||||
strip_true_list.append(strip)
|
||||
|
||||
|
||||
|
||||
strip_true_list = list(set(strip_true_list))
|
||||
|
||||
# to find syntax errors in cfg or cmd commands
|
||||
#for k in coverage_list.keys():
|
||||
# if ("[" in k) or ("]" in k) or ("<" in k) or (">" in k) or ("|" in k):
|
||||
# print(coverage_list[k])
|
||||
|
||||
|
||||
|
||||
table = nodes.table()
|
||||
tgroup = nodes.tgroup(cols=3)
|
||||
tgroup = nodes.tgroup(cols=4)
|
||||
table += tgroup
|
||||
|
||||
header = (f'{int_docs}/{len(coverage_list)} in Docs', f'{int_xml}/{len(coverage_list)} in XML', 'Command')
|
||||
colwidths = (1, 1, 8)
|
||||
header = (f'Status {len(strip_true_list)}/{len(coverage_list)}', 'Documentation', 'XML', f'in VyOS {vyoscmd["os"]}')
|
||||
colwidths = (5, 33 , 33, 33)
|
||||
table = nodes.table()
|
||||
tgroup = nodes.tgroup(cols=len(header))
|
||||
table += tgroup
|
||||
@ -548,28 +693,42 @@ def process_coverage(app, fromdocname, doccmd, xmlcmd, cli_type):
|
||||
tbody = nodes.tbody()
|
||||
tgroup += tbody
|
||||
for entry in sorted(coverage_list):
|
||||
body_text_list = []
|
||||
doc_cmd_text = []
|
||||
doc_xml_text = []
|
||||
doc_vyos_text = []
|
||||
if coverage_list[entry]['indocs']:
|
||||
body_text_list.append(coverage_list[entry]['doccmd_item'])
|
||||
doc_cmd_text.append(coverage_list[entry]['doccmd_item'])
|
||||
else:
|
||||
body_text_list.append('Not documented yet')
|
||||
doc_cmd_text.append('not yet documented')
|
||||
|
||||
if coverage_list[entry]['inxml']:
|
||||
body_text_list.append("------------------")
|
||||
body_text_list.append(str(coverage_list[entry]['xmlfilename']) + ":")
|
||||
body_text_list.append(coverage_list[entry]['xmlcmd'])
|
||||
doc_xml_text.append(str(coverage_list[entry]['xmlfilename']) + ":")
|
||||
doc_xml_text.append(coverage_list[entry]['xmlcmd'])
|
||||
else:
|
||||
body_text_list.append('Nothing found in XML Definitions')
|
||||
doc_xml_text.append('Nothing found in XML Definitions')
|
||||
|
||||
if coverage_list[entry]['invyos']:
|
||||
doc_vyos_text.append(coverage_list[entry]['vyoscmd'])
|
||||
else:
|
||||
doc_vyos_text.append('Nothing found in VyOS')
|
||||
|
||||
|
||||
|
||||
if not coverage_list[entry]['indocs'] or not coverage_list[entry]['inxml'] or not coverage_list[entry]['invyos']:
|
||||
status = False
|
||||
else:
|
||||
status = True
|
||||
|
||||
tbody += build_row(app, fromdocname,
|
||||
(
|
||||
coverage_list[entry]['indocs'],
|
||||
coverage_list[entry]['inxml'],
|
||||
body_text_list
|
||||
status,
|
||||
doc_cmd_text,
|
||||
doc_xml_text,
|
||||
doc_vyos_text
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
table['ids'] = [f'table-{cli_type}']
|
||||
return table
|
||||
|
||||
def process_cmd_node(app, cmd, fromdocname, cli_type):
|
||||
@ -599,6 +758,7 @@ def process_cmd_nodes(app, doctree, fromdocname):
|
||||
fromdocname,
|
||||
env.vyos_cfgcmd,
|
||||
app.config.vyos_working_commands['cfgcmd'],
|
||||
app.config.vyos_commands,
|
||||
'cfgcmd'
|
||||
)
|
||||
)
|
||||
@ -616,6 +776,7 @@ def process_cmd_nodes(app, doctree, fromdocname):
|
||||
fromdocname,
|
||||
env.vyos_opcmd,
|
||||
app.config.vyos_working_commands['opcmd'],
|
||||
app.config.vyos_commands,
|
||||
'opcmd'
|
||||
)
|
||||
)
|
||||
@ -640,4 +801,21 @@ def vytask_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
|
||||
|
||||
def cmd_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
|
||||
node = nodes.literal(text, text)
|
||||
return [node], []
|
||||
return [node], []
|
||||
|
||||
|
||||
def handle_document_meta_data(app, document):
|
||||
docname = app.env.docname
|
||||
lastproofread = app.env.metadata[docname].get('lastproofread', False)
|
||||
if lastproofread:
|
||||
try:
|
||||
lastproofread_time = datetime.strptime(lastproofread, '%Y-%m-%d')
|
||||
delta = datetime.now() - lastproofread_time
|
||||
if delta.days > 365:
|
||||
logger.warning(f'{delta.days} days since last proofread {app.env.doc2path(docname)}')
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f'lastproofread meta data error in {app.env.doc2path(docname)}: {e}')
|
||||
else:
|
||||
pass
|
||||
#logger.warning(f'lastproofread meta data missing in {app.env.doc2path(docname)}')
|
||||
|
||||
7
docs/_html_extra/robots.txt
Normal file
7
docs/_html_extra/robots.txt
Normal file
@ -0,0 +1,7 @@
|
||||
User-agent: atlassian-bot
|
||||
Disallow:
|
||||
|
||||
User-agent: *
|
||||
Disallow: # Allow everything
|
||||
|
||||
Sitemap: https://docs.vyos.io/sitemap.xml
|
||||
@ -2,8 +2,10 @@
|
||||
|
||||
.. _`accel-ppp`: https://accel-ppp.org/
|
||||
.. _`Secure Socket Tunneling Protocol`: https://en.wikipedia.org/wiki/Secure_Socket_Tunneling_Protocol
|
||||
.. _Phabricator: https://phabricator.vyos.net/
|
||||
.. _Phabricator: https://vyos.dev/
|
||||
.. _802.1ad: https://en.wikipedia.org/wiki/IEEE_802.1ad
|
||||
.. _802.1q: https://en.wikipedia.org/wiki/IEEE_802.1Q
|
||||
.. _`VyOS CI`: https://ci.vyos.net
|
||||
.. _vyos-build: https://github.com/vyos/vyos-build
|
||||
|
||||
.. start_vyoslinter
|
||||
.. start_vyoslinter
|
||||
|
||||
120049
docs/_include/coverage/20220531-1.4-rolling-202205310217.json
Normal file
120049
docs/_include/coverage/20220531-1.4-rolling-202205310217.json
Normal file
File diff suppressed because it is too large
Load Diff
125395
docs/_include/coverage/20220712-1.4-rolling-202207111030.json
Normal file
125395
docs/_include/coverage/20220712-1.4-rolling-202207111030.json
Normal file
File diff suppressed because it is too large
Load Diff
124747
docs/_include/coverage/20221013-1.4-rolling-202210090955.json
Normal file
124747
docs/_include/coverage/20221013-1.4-rolling-202210090955.json
Normal file
File diff suppressed because it is too large
Load Diff
125763
docs/_include/coverage/20221229-1.4-rolling-202212280917.json
Normal file
125763
docs/_include/coverage/20221229-1.4-rolling-202212280917.json
Normal file
File diff suppressed because it is too large
Load Diff
134465
docs/_include/coverage/20230720-1.4-rolling-202307200317.json
Normal file
134465
docs/_include/coverage/20230720-1.4-rolling-202307200317.json
Normal file
File diff suppressed because it is too large
Load Diff
144205
docs/_include/coverage/20230831-1.4-rolling-202308240020.json
Normal file
144205
docs/_include/coverage/20230831-1.4-rolling-202308240020.json
Normal file
File diff suppressed because it is too large
Load Diff
1
docs/_include/draw.io/vpn_s2s_ikev2_c.drawio
Normal file
1
docs/_include/draw.io/vpn_s2s_ikev2_c.drawio
Normal file
@ -0,0 +1 @@
|
||||
<mxfile host="app.diagrams.net" modified="2021-06-29T11:55:47.927Z" agent="5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" etag="Bz4WAiXHzjjCvDkoEJPw" version="14.8.1" type="device"><diagram id="aAslkehIyZXHwb55RWRM" name="Page-1">7VpLc6M4EP41PpoCSbyOdhLPHjJVmUpVNnuUQbapBeQFObb3168EwjwkPzJrHKcK5xDUEq1W99etVosRfEh2PzK8Xv2kIYlHwAx3I/g4AgDYjsf/Ccq+pFi2bZaUZRaFklYTXqN/iSRWwzZRSPLWQEZpzKJ1mxjQNCUBa9FwltFte9iCxu1Z13hJFMJrgGOV+mcUslVJ9apVCPofJFquqpktU/YkuBosCfkKh3TbIMGnEXzIKGXlU7J7ILHQXqWX8r3Zkd6DYBlJ2SUvPMcQwd02m7w95GM/fv71vsVjyeUDxxu5YCks21cayOgmDYlgYo3gdLuKGHld40D0brnROW3Fklh2q0JVM5CMkV2DJIX8QWhCWLbnQ2TvGNlO+Y7EzBjaksm2tgBCqKStGtqHsLK8tPrywL1WDH+QuvmEnsAd6skyPXh3ioLnFcUdYS0ek91SBA0jiPKAGlx9jGS5/N/WVojzVaFZkzcWURw/0JhmBTdoQsfzXU7PWUb/Jo2eRfE79FTuy1U6FVqOuJM/4zmJX2gesYimvG9OGaNJY8Akjpaig1FhwNrEQpCDQ4tGQJMoqCSkKZvhJIqFXd5IFuIUS7IMcBa4GgZs1MYA8G0FA9DTYMDy/J4wgAYM3BIDCN4fBOwBAreEgItcw26DwLPgV4PAOQ8CEvJsSzZzsky4Dp5q0pSk4UQkcbw3pSlpw4HsIvYudM2XXrb+kpoXz4+7ZmPfsEkDG1M4mzmOiqbQJl6IdGhynCmYzRQ0QTnRC8kirjyB3HLylCuyFLIwdtEuxDT8qllLWrT2zZbKL5xFwgpF6yh0crrJAnJ+m2Y4WxJ23o+FmU4CsQGyKjVuYqyiZSTGLPpo59Y63MkZXmjEV1bj3HOg4cH610l/gNPmWKpBMmmmxgpf/xRf13cNp/Gz27OUSlRm4cDF+8awtRiQn1zckTh+XOzuG8g984ZrWiff4A+l3LXXH6z8+4HAHQJBIxB43h0FAvQ9AwFyQMthzY7L8iO60XHTi4MBdC3DUt29Ym07liZWXDsYAAQ+6dqoKpnc1LU9jWs7Mbf2dM4flqwAZ0kQLtdyeuefDa06xnmREk34AMtb7+rOiovlA24VzzANvswZQBVX3igZtyfj5IYAnWDD0yrWDiFt95YhphkLJAnLRDDgjlakp90MMYnCsIhYugJAO3G8RuKn7AC2qeb+FrJVT6zKUlfP+vxbIcIA9oCCclfvosCpij7NQpB7QxBUsegGKBBTDSAAYx+Y3TMgrElfBgRdhXkIB70iAZl3Fw509fMhHPQJAtCtCh5q/l8GAt3dQD+5ostzRc8AJhiSxebBxr+7ZNHS3RVcAwIfLKojwTzrWjxf4/Q4861cumCf0izBsQZjpjiKGGL9wrEOQCo5K/hqw64DsTOXhRfWm9uFCGt0UQUajZSax8IWf0dxLl6WolsaTJcl8mvA1TK7R2/f0qQzoDr7t+oMsC/A6m42vhNg4QDYvgCr1Gx886vRqruC+Z9bLkA6+GbFaoZttijEKZmX9himKY/2t8/qSvC9ACEmiwEHcv9C3QsqXQreEwze8zeeBrNfP6eTcLcC28dJvNB+7tVztfbUpqZSvjtiFHhoQHSimotQt4TjWuoewhOjG2JGd3TvWKBxOxfEOM/FDq9+7da5O7pIMze6TnL9zs7tmh11Xnx7pLByvA6rI1dEv3Ejo7XX7U/Z1kknv45LZ4SLg+fFAOFueMNoLlPCT3myvHnj09jTkf2oDwzaANKDv9tO198PaGn6O7zOHsGb9efGJdzqr7bh038=</diagram></mxfile>
|
||||
@ -11,11 +11,19 @@
|
||||
* **dhcpv6** interface address is received by DHCPv6 from a DHCPv6
|
||||
server on this segment.
|
||||
|
||||
.. note:: When using DHCP to retrieve IPv4 address and if local
|
||||
customizations are needed, they should be possible using the enter and
|
||||
exit hooks provided. The hook dirs are:
|
||||
|
||||
* ``/config/scripts/dhcp-client/pre-hooks.d/``
|
||||
* ``/config/scripts/dhcp-client/post-hooks.d/``
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address 192.0.2.1/24
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address 2001:db8::1/64
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address dhcp
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address dhcpv6
|
||||
|
||||
31
docs/_include/interface-common-without-mac.txt
Normal file
31
docs/_include/interface-common-without-mac.txt
Normal file
@ -0,0 +1,31 @@
|
||||
.. cmdinclude:: /_include/interface-description.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-disable.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-disable-flow-control.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-disable-link-detect.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-mtu.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-ip.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-ipv6.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
|
||||
.. cmdinclude:: /_include/interface-vrf.txt
|
||||
:var0: {{ var0 }}
|
||||
:var1: {{ var1 }}
|
||||
@ -28,6 +28,11 @@
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcp-options vendor-class-id <vendor-id>
|
||||
|
||||
This option is used by some DHCP clients to identify the vendor type and
|
||||
possibly the configuration of a DHCP client. The information is a string of
|
||||
bytes whose contents are specific to the vendor and are not specified in a
|
||||
standard.
|
||||
|
||||
The vendor-class-id option can be used to request a specific class of vendor
|
||||
options from the server.
|
||||
|
||||
@ -48,3 +53,43 @@
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options no-default-route
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcp-options default-route-distance <distance>
|
||||
|
||||
Set the distance for the default gateway sent by the DHCP server.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options default-route-distance 220
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcp-options reject <address>
|
||||
|
||||
Reject DHCP leases from a given address or range.
|
||||
This is useful when a modem gives a local IP when first starting.
|
||||
|
||||
* **address** can be specified multiple times,
|
||||
e.g. 192.168.100.1 and/or 192.168.100.0/24
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options reject 192.168.100.0/24
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcp-options user-class <string>
|
||||
|
||||
This option is used by some DHCP clients as a way for users to specify
|
||||
identifying information to the client. This can be used in a similar way to
|
||||
the vendor-class-identifier option, but the value of the option is specified
|
||||
by the user, not the vendor.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options user-class VyOS
|
||||
|
||||
@ -11,6 +11,17 @@
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} duid '0e:00:00:01:00:01:27:71:db:f0:00:50:56:bf:c5:6d'
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcpv6-options no-release
|
||||
|
||||
When no-release is specified, dhcp6c will avoid sending a release message on
|
||||
client exit in order to prevent losing an assigned address or prefix.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-options no-release
|
||||
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} dhcpv6-options parameters-only
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ networks.
|
||||
{{ var5 }} {{ var6 }} dhcpv6-options pd <id> interface <delegatee>
|
||||
address <address>
|
||||
|
||||
Specify the interface address used locally on the interfcae where the prefix
|
||||
Specify the interface address used locally on the interface where the prefix
|
||||
has been delegated to. ID must be a decimal integer.
|
||||
|
||||
It will be combined with the delegated prefix and the sla-id to form a
|
||||
|
||||
@ -7,31 +7,35 @@ EAPoL comes with an identify option. We automatically use the interface MAC
|
||||
address as identity parameter.
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} eapol ca-cert-file <file>
|
||||
{{ var5 }} {{ var6 }} eapol ca-certificate <name>
|
||||
|
||||
SSL :abbr:`CA (Certificate Authority)` x509 PEM file used afor authentication
|
||||
of the remote side.
|
||||
Set the name of the SSL :abbr:`CA (Certificate Authority)` PKI entry used for
|
||||
authentication of the remote side. If an intermediate CA certificate is
|
||||
specified, then all parent CA certificates that exist in the PKI, such as the
|
||||
root CA or additional intermediate CAs, will automatically be used during
|
||||
certificate validation to ensure that the full chain of trust is available.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} eapol ca-cert-file /config/auth/ca.pem
|
||||
set pki ca eapol-server-intermediate-ca <Server intermediate CA contents>
|
||||
set pki ca eapol-server-root-ca <Server root CA contents>
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} eapol ca-certificate eapol-server-intermediate-ca
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} eapol cert-file <file>
|
||||
{{ var5 }} {{ var6 }} eapol certificate <name>
|
||||
|
||||
SSL/x509 public certificate file provided by the client to authenticate
|
||||
against the 802.1x system.
|
||||
Set the name of the x509 client keypair used to authenticate against the
|
||||
802.1x system. All parent CA certificates of the client certificate, such as
|
||||
intermediate and root CAs, will be sent as part of the EAP-TLS handshake.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} eapol cert-file /config/auth/public.pem
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} eapol key-file <file>
|
||||
|
||||
SSL/x509 private certificate file provided by the client to authenticate
|
||||
against the 802.1x system.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} eapol key-file /config/auth/private.key
|
||||
set pki ca eapol-client-intermediate-ca <Client intermediate CA contents>
|
||||
set pki ca eapol-client-root-ca <Client root CA contents>
|
||||
set pki certificate eapol-client certificate <Client certificate contents>
|
||||
set pki certificate eapol-client private key <Client private key contents>
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} eapol certificate eapol-client
|
||||
|
||||
11
docs/_include/interface-evpn-uplink.txt
Normal file
11
docs/_include/interface-evpn-uplink.txt
Normal file
@ -0,0 +1,11 @@
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> evpn uplink
|
||||
|
||||
When all the underlay links go down the PE no longer has access
|
||||
to the VxLAN +overlay. To prevent blackholing of traffic the
|
||||
server/ES links are protodowned on the PE.
|
||||
|
||||
A link can be setup for uplink tracking via the following example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} evpn uplink
|
||||
@ -1,8 +1,25 @@
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ip adjust-mss <mss | clamp-mss-to-pmtu>
|
||||
|
||||
As Internet wide PMTU discovery rarely works, we sometimes need to clamp our
|
||||
TCP MSS value to a specific value. This is a field in the TCP options part of
|
||||
a SYN packet. By setting the MSS value, you are telling the remote side
|
||||
unequivocally 'do not try to send me packets bigger than this value'.
|
||||
|
||||
.. note:: This command was introduced in VyOS 1.4 - it was previously called:
|
||||
``set firewall options interface <name> adjust-mss <value>``
|
||||
|
||||
.. hint:: MSS value = MTU - 20 (IP header) - 20 (TCP header), resulting in
|
||||
1452 bytes on a 1492 byte MTU.
|
||||
|
||||
Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
|
||||
automatically set the proper value.
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ip arp-cache-timeout
|
||||
|
||||
Once a neighbor has been found, the entry is considered to be valid for at
|
||||
least for this specifc time. An entry's validity will be extended if it
|
||||
least for this specific time. An entry's validity will be extended if it
|
||||
receives positive feedback from higher level protocols.
|
||||
|
||||
This defaults to 30 seconds.
|
||||
@ -46,10 +63,26 @@
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ip disable-forwarding
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ip enable-directed-broadcast
|
||||
|
||||
Define different modes for IP directed broadcast forwarding as described in
|
||||
:rfc:`1812` and :rfc:`2644`.
|
||||
|
||||
If configured, incoming IP directed broadcast packets on this interface will
|
||||
be forwarded.
|
||||
|
||||
If this option is unset (default), incoming IP directed broadcast packets
|
||||
will not be forwarded.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ip enable-directed-broadcast
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ip enable-arp-accept
|
||||
|
||||
Define behavior for gratuitous ARP frames who's IP is not already present in
|
||||
Define behavior for gratuitous ARP frames whose IP is not already present in
|
||||
the ARP table. If configured create new entries in the ARP table.
|
||||
|
||||
Both replies and requests type gratuitous arp will trigger the ARP table to be
|
||||
@ -126,7 +159,7 @@
|
||||
possible to allow these hosts to communicate through the upstream router by
|
||||
proxy_arp'ing.
|
||||
|
||||
.. note:: Don't need to be used together with proxy_arp.
|
||||
.. note:: Does not need to be used together with proxy_arp.
|
||||
|
||||
This technology is known by different names:
|
||||
|
||||
|
||||
@ -53,3 +53,48 @@
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ipv6 disable-forwarding
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ipv6 adjust-mss <mss | clamp-mss-to-pmtu>
|
||||
|
||||
As Internet wide PMTU discovery rarely works, we sometimes need to clamp our
|
||||
TCP MSS value to a specific value. This is a field in the TCP options part of
|
||||
a SYN packet. By setting the MSS value, you are telling the remote side
|
||||
unequivocally 'do not try to send me packets bigger than this value'.
|
||||
|
||||
.. note:: This command was introduced in VyOS 1.4 - it was previously called:
|
||||
``set firewall options interface <name> adjust-mss6 <value>``
|
||||
|
||||
.. hint:: MSS value = MTU - 40 (IPv6 header) - 20 (TCP header), resulting in
|
||||
1432 bytes on a 1492 byte MTU.
|
||||
|
||||
Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
|
||||
automatically set the proper value.
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ipv6 accept-dad <1-3>
|
||||
|
||||
Whether to accept DAD (Duplicate Address Detection).
|
||||
|
||||
- 0: Disable DAD
|
||||
- 1: Enable DAD (default)
|
||||
- 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate link-local address has been found.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ipv6 accept-dad 2
|
||||
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} ipv6 dup-addr-detect-transmits <n>
|
||||
|
||||
The amount of Duplicate Address Detection probes to send.
|
||||
|
||||
Default: 1
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ipv6 dup-addr-detect-transmits 5
|
||||
|
||||
@ -8,4 +8,4 @@
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mac '00:01:02:03:04:05'
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mac '00:53:01:02:03:04'
|
||||
@ -1,7 +1,10 @@
|
||||
SPAN port mirroring can copy the inbound/outbound traffic of the interface to
|
||||
the specified interface, usually the interface can be connected to some special
|
||||
equipment, such as behavior control system, intrusion detection system and
|
||||
traffic collector, and can copy all related traffic from this port
|
||||
equipment, such as a behavior control system, intrusion detection system or
|
||||
traffic collector, and can copy all related traffic from this port.
|
||||
The benefit of mirroring the traffic is that the application is isolated from
|
||||
the source traffic and so application processing does not affect the traffic
|
||||
or the system performance.
|
||||
|
||||
VyOS uses the `mirror` option to configure port mirroring. The configuration
|
||||
is divided into 2 different directions. Destination ports should be configured
|
||||
|
||||
@ -8,4 +8,4 @@
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mtu 9000
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mtu 1600
|
||||
14
docs/_include/interface-per-client-thread.txt
Normal file
14
docs/_include/interface-per-client-thread.txt
Normal file
@ -0,0 +1,14 @@
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
|
||||
{{ var5 }} {{ var6 }} per-client-thread
|
||||
|
||||
Provides a per-device control to enable/disable the threaded mode for
|
||||
all the NAPI instances of the given network device, without the need for
|
||||
a device up/down.
|
||||
|
||||
If CLI option is not specified, this feature is disabled.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} per-client-thread
|
||||
@ -1,27 +0,0 @@
|
||||
.. cfgcmd:: set interfaces {{ var0 }} <interface> xdp
|
||||
|
||||
Enable support for Linux :abbr:`XDP (eXpress Data Path)` on recent 1.3 rolling
|
||||
releases. You must enable it for every interface which should participate in
|
||||
the XDP forwarding.
|
||||
|
||||
XDP is an eBPF based high performance data path merged in the Linux kernel
|
||||
since version 4.8. The idea behind XDP is to add an early hook in the RX path
|
||||
of the kernel, and let a user supplied eBPF program decide the fate of the
|
||||
packet. The hook is placed in the NIC driver just after the interrupt
|
||||
processing, and before any memory allocation needed by the network stack
|
||||
itself, because memory allocation can be an expensive operation.
|
||||
|
||||
.. warning:: This is highly experimental!
|
||||
|
||||
.. note:: Enabling this feature will break any form of NAT or Firewalling on
|
||||
this interface, as XDP is handled way earlier in the driver then iptables/
|
||||
nftables.
|
||||
|
||||
Enabling this feature will only load the XDP router code as described here:
|
||||
https://blog.apnic.net/2020/04/30/how-to-build-an-xdp-based-bgp-peering-router/
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set interfaces {{ var0 }} {{ var1 }} xdp
|
||||
@ -1 +1 @@
|
||||
Subproject commit 86209c679c6b7ca9d5bac1f67ffd391b9b16c008
|
||||
Subproject commit f980f8b8010a9681c387d47c476254c89b0c4a25
|
||||
37
docs/_locale/de/404.pot
Normal file
37
docs/_locale/de/404.pot
Normal file
@ -0,0 +1,37 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Localazy (https://localazy.com)\n"
|
||||
"Project-Id-Version: VyOS Documentation\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n"
|
||||
|
||||
#: ../../404.rst:4
|
||||
msgid "Page Not Found"
|
||||
msgstr "Seite nicht gefunden"
|
||||
|
||||
#: ../../404.rst:6
|
||||
msgid "Sorry, We could not find a page. Try using the search box or go to the release homepage:"
|
||||
msgstr "Entschuldigung, wir konnten keine Seite finden. Versuchen Sie es mit dem Suchfeld oder gehen Sie auf die Homepage der Veröffentlichung:"
|
||||
|
||||
#: ../../404.rst:9
|
||||
msgid "`1.2.x (crux) <https://docs.vyos.io/en/crux/>`_"
|
||||
msgstr "`1.2.x (crux) <https://docs.vyos.io/en/crux/>`_"
|
||||
|
||||
#: ../../404.rst:10
|
||||
msgid "`1.3.x (equuleus) <https://docs.vyos.io/en/equuleus/>`_"
|
||||
msgstr "`1.3.x (equuleus) <https://docs.vyos.io/en/equuleus/>`_"
|
||||
|
||||
#: ../../404.rst:11
|
||||
msgid "`1.4.x (sagitta) <https://docs.vyos.io/en/sagitta/>`_"
|
||||
msgstr "`1.4.x (sagitta) <https://docs.vyos.io/en/sagitta/>`_"
|
||||
|
||||
#: ../../404.rst:12
|
||||
msgid "`rolling release (circinus) <https://docs.vyos.io/en/latest/>`_"
|
||||
msgstr "`rolling release (circinus) <https://docs.vyos.io/en/latest/>`_"
|
||||
|
||||
#: ../../404.rst:11
|
||||
msgid "`rolling release (sagitta) <https://docs.vyos.io/en/latest/>`_"
|
||||
msgstr "`Rolling Release (Sagitta) <https://docs.vyos.io/en/latest/>`_"
|
||||
BIN
docs/_locale/de/LC_MESSAGES/404.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/404.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/automation.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/automation.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/cli.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/cli.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/configexamples.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/configexamples.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/configuration.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/configuration.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/contributing.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/contributing.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/copyright.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/copyright.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/documentation.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/documentation.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/index.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/index.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/installation.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/installation.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/introducing.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/introducing.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/operation.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/operation.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/quick-start.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/quick-start.mo
Normal file
Binary file not shown.
BIN
docs/_locale/de/LC_MESSAGES/troubleshooting.mo
Normal file
BIN
docs/_locale/de/LC_MESSAGES/troubleshooting.mo
Normal file
Binary file not shown.
1782
docs/_locale/de/automation.pot
Normal file
1782
docs/_locale/de/automation.pot
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user