From c5507064cc3da2814d68220dc7794397cb5cb6f1 Mon Sep 17 00:00:00 2001 From: Florian Burgener <florian.burgener@etu.hesge.ch> Date: Tue, 24 May 2022 13:52:00 +0200 Subject: [PATCH] Done insertion --- .gitignore | 1 + __main__.py | 32 ++++++++++---------- src/bptree.c | 72 +++++++++++++++++++++++++++++++++++++-------- src/bptree.h | 2 ++ src/bptree.o | Bin 25160 -> 37664 bytes src/main.c | 19 ++++++------ src/main.o | Bin 8384 -> 9296 bytes src/program | Bin 41496 -> 53504 bytes src/sorted_array.c | 18 ++++++++++-- src/sorted_array.h | 2 +- src/sorted_array.o | Bin 20032 -> 22512 bytes 11 files changed, 105 insertions(+), 41 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9339112 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +src/program diff --git a/__main__.py b/__main__.py index b369571..66507d0 100644 --- a/__main__.py +++ b/__main__.py @@ -444,14 +444,14 @@ def main(): random.seed(a) order = 2 - # root = Node(order) - # keys = generate_random_keys(40, 1, 99) - # print(keys) + root = Node(order) + keys = generate_random_keys(40, 1, 99) + print(keys) - # for key in keys: - # bptree_insert(root, key) + for key in keys: + bptree_insert(root, key) - # bptree_print(root) + bptree_print(root) # extracted_keys = bptree_extract_all_keys(root) # assert extracted_keys == sorted(keys) @@ -467,20 +467,20 @@ def main(): # assert not bptree_search(root, random_key) - root = Node(order) - keys = generate_random_keys(30, 1, 99) - print(keys) - print("=====") + # root = Node(order) + # keys = generate_random_keys(30, 1, 99) + # print(keys) + # print("=====") - for key in keys: - bptree_insert(root, key) + # for key in keys: + # bptree_insert(root, key) - bptree_delete(root, 65) - bptree_delete(root, 57) - bptree_delete(root, 47) # bptree_delete(root, 65) + # bptree_delete(root, 57) + # bptree_delete(root, 47) + # # bptree_delete(root, 65) - bptree_print(root) + # bptree_print(root) if __name__ == "__main__": diff --git a/src/bptree.c b/src/bptree.c index 330dc11..660fc9f 100644 --- a/src/bptree.c +++ b/src/bptree.c @@ -40,7 +40,17 @@ void bptree_destroy(BPTreeNode **root) { *root = NULL; } -// ... +void bptree_print(BPTreeNode *root, int depth) { + for (int i = 0; i < depth; i++) { + printf(" "); + } + + array_print(root->keys_length, root->keys); + + for (int i = 0; i < root->children_length; i++) { + bptree_print(root->children[i], depth + 1); + } +} // Insertion @@ -52,7 +62,7 @@ static void redistribute_keys(BPTreeNode *left_node, BPTreeNode *right_node, int left_node->keys_length = left_index; } -uint64_t split_leaf(BPTreeNode *node, uint64_t key, BPTreeNode **right_node) { +static uint64_t split_leaf(BPTreeNode *node, uint64_t key, BPTreeNode **right_node) { int virtual_insertion_index = lower_bound(node->keys_length, node->keys, key); int median_index = node->keys_length / 2; uint64_t median_value; @@ -77,13 +87,42 @@ uint64_t split_leaf(BPTreeNode *node, uint64_t key, BPTreeNode **right_node) { return median_value; } -// static void redistribute_children(BPTreeNode *left_node, BPTreeNode *right_node, int left_index, int right_index) { -// for (int i = right_index; i < left_node->children_length; i++) { -// array_append_BPTreeNode(&right_node->children_length, right_node->children, left_node->children[i]); -// } +static void redistribute_children(BPTreeNode *left_node, BPTreeNode *right_node, int left_index, int right_index) { + for (int i = right_index; i < left_node->children_length; i++) { + array_append_BPTreeNode(&right_node->children_length, right_node->children, left_node->children[i]); + } -// left_node->children_length = left_index; -// } + left_node->children_length = left_index; +} + +static uint64_t split_internal(BPTreeNode *node, uint64_t key, BPTreeNode *right_child_node, BPTreeNode **right_node) { + int virtual_insertion_index = lower_bound(node->keys_length, node->keys, key); + int median_index = node->keys_length / 2; + uint64_t median_value; + *right_node = bptree_init(node->order); + (*right_node)->is_leaf = false; + + if (virtual_insertion_index < median_index) { + median_value = node->keys[median_index - 1]; + redistribute_keys(node, *right_node, median_index - 1, median_index); + redistribute_children(node, *right_node, median_index, median_index); + int insertion_index = sorted_array_insert(&node->keys_length, node->keys, key); + array_insert_at_index_BPTreeNode(&node->children_length, node->children, insertion_index + 1, right_child_node); + } else if (virtual_insertion_index > median_index) { + median_value = node->keys[median_index]; + redistribute_keys(node, *right_node, median_index, median_index + 1); + redistribute_children(node, *right_node, median_index + 1, median_index + 1); + int insertion_index = sorted_array_insert(&(*right_node)->keys_length, (*right_node)->keys, key); + array_insert_at_index_BPTreeNode(&(*right_node)->children_length, (*right_node)->children, insertion_index + 1, right_child_node); + } else { + median_value = key; + redistribute_keys(node, *right_node, median_index, median_index); + redistribute_children(node, *right_node, median_index + 1, median_index + 1); + array_insert_at_index_BPTreeNode(&(*right_node)->children_length, (*right_node)->children, 0, right_child_node); + } + + return median_value; +} static void grow(BPTreeNode *root, uint64_t median_value, BPTreeNode *split_right_node) { BPTreeNode *left_node = bptree_init(root->order); @@ -106,6 +145,8 @@ static void grow(BPTreeNode *root, uint64_t median_value, BPTreeNode *split_righ array_append_BPTreeNode(&root->children_length, root->children, split_right_node); } +static void insert_non_full(BPTreeNode *node, uint64_t key, BPTreeNode *previous_split_right_node); + static void insert_full(BPTreeNode *root, int *parents_length, BPTreeNode **parents, BPTreeNode *node, uint64_t key, BPTreeNode *previous_split_right_node) { uint64_t median_value; BPTreeNode *split_right_node; @@ -113,15 +154,20 @@ static void insert_full(BPTreeNode *root, int *parents_length, BPTreeNode **pare if (node->is_leaf) { median_value = split_leaf(node, key, &split_right_node); } else { - // TODO - printf("TODO\n"); + median_value = split_internal(node, key, previous_split_right_node, &split_right_node); } if (node == root) { grow(root, median_value, split_right_node); } else { - // TODO - printf("TODO\n"); + BPTreeNode *parent = parents[*parents_length - 1]; + array_delete_at_index_BPTreeNode(parents_length, parents, *parents_length - 1); + + if (has_maximum_keys(parent)) { + insert_full(root, parents_length, parents, parent, median_value, split_right_node); + } else { + insert_non_full(parent, median_value, split_right_node); + } } } @@ -158,6 +204,8 @@ void bptree_insert(BPTreeNode *root, uint64_t key) { BPTreeNode **parents; BPTreeNode *leaf = find_leaf(root, key, &parents_length, &parents); + // TODO : vérifier si la clé existe dans leaf. + if (has_maximum_keys(leaf)) { insert_full(root, &parents_length, parents, leaf, key, NULL); } else { diff --git a/src/bptree.h b/src/bptree.h index d5bc03a..308dc0c 100644 --- a/src/bptree.h +++ b/src/bptree.h @@ -16,6 +16,8 @@ typedef struct BPTreeNode { BPTreeNode *bptree_init(int order); void bptree_destroy(BPTreeNode **root); +void bptree_print(BPTreeNode *root, int depth); + // ... // Insertion diff --git a/src/bptree.o b/src/bptree.o index 1c3356f81150672ea30605e2d69c077b43918883..9add434408ea836f14fd8beda4e8ae16dd6dabf8 100644 GIT binary patch literal 37664 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 literal 25160 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 HqU#3$cjsnh diff --git a/src/main.c b/src/main.c index 656890d..69cae45 100644 --- a/src/main.c +++ b/src/main.c @@ -1,20 +1,19 @@ #include <stdio.h> #include <stdlib.h> -#include "sorted_array.h" #include "bptree.h" +#include "sorted_array.h" int main() { BPTreeNode *root = bptree_init(2); - // [8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55 - bptree_insert(root, 8); - bptree_insert(root, 12); - bptree_insert(root, 11); - bptree_insert(root, 47); - bptree_insert(root, 22); - array_print(root->keys_length, root->keys); - array_print(root->children[0]->keys_length, root->children[0]->keys); - array_print(root->children[1]->keys_length, root->children[1]->keys); + int keys_length = 40; + uint64_t keys[] = {8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55, 68, 72, 23, 31, 30, 42, 18, 87, 24, 58}; + array_print(keys_length, keys); + + for (int i = 0; i < keys_length; i++) { + bptree_insert(root, keys[i]); + } + bptree_print(root, 0); return EXIT_SUCCESS; } diff --git a/src/main.o b/src/main.o index 7cead98a5619bbb3096b135d6cd99d66c5f6d86c..d47a4d1ce4a6d1ed2ac727bdee6c2a822203f63d 100644 GIT binary patch literal 9296 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 DQT@Yd delta 3463 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 S4xW=gDw}f#Kuvf93Kak)V}}j^ diff --git a/src/program b/src/program index b11cbd80e7c3c03fd3956742bc7631c4cbbb3342..5eaec8a64b736d8c9349cd161513078dee25a623 100644 GIT binary patch literal 53504 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 literal 41496 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	(;9qxmq$3$Ne* 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 diff --git a/src/sorted_array.c b/src/sorted_array.c index 50834dc..85ffd9d 100644 --- a/src/sorted_array.c +++ b/src/sorted_array.c @@ -81,11 +81,17 @@ void array_append(int *array_length, uint64_t *array, uint64_t value) { } void array_print(int array_length, uint64_t *array) { + printf("["); + for (int i = 0; i < array_length; i++) { - printf("%ld ", array[i]); + printf("%ld", array[i]); + + if (i < array_length - 1) { + printf(", "); + } } - printf("\n"); + printf("]\n"); } void array_insert_at_index_BPTreeNode(int *array_length, BPTreeNode **array, int insertion_index, BPTreeNode *value) { @@ -101,3 +107,11 @@ void array_append_BPTreeNode(int *array_length, BPTreeNode **array, BPTreeNode * array[*array_length] = value; *array_length += 1; } + +void array_delete_at_index_BPTreeNode(int *array_length, BPTreeNode **array, int deletion_index) { + for (int i = deletion_index; i < *array_length; i++) { + array[i] = array[i + 1]; + } + + *array_length -= 1; +} diff --git a/src/sorted_array.h b/src/sorted_array.h index 5192d0f..b8c330c 100644 --- a/src/sorted_array.h +++ b/src/sorted_array.h @@ -19,6 +19,6 @@ typedef struct BPTreeNode BPTreeNode; void array_insert_at_index_BPTreeNode(int *array_length, BPTreeNode **array, int insertion_index, BPTreeNode *value); void array_append_BPTreeNode(int *array_length, BPTreeNode **array, BPTreeNode *value); -// void array_delete_at_index_BPTreeNode(BPTreeNode **array, int *array_length, int index); +void array_delete_at_index_BPTreeNode(int *array_length, BPTreeNode **array, int deletion_index); #endif diff --git a/src/sorted_array.o b/src/sorted_array.o index 4d28f285dc92c82c19a672638a679bb237d9a952..2e7e50aa021f3738994c20557dcc6f90e9328abb 100644 GIT binary patch literal 22512 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 delta 8254 zcmeycp7FpO#t9ls3?3V`ZZXBQ{;%`sb^q@e;?tXQj3d;eSC@f-fg#wV^K;q+k8WX) z&UgD685kH04|p^m=6C^;^Rawf`ZRh!7Xt%BtYgeekPyFo1Be2Pfd$g|<y{yUHa}n% zXJl8+Nl{?<#yL5VRi4S5WpfcLBXfNU8%R9}i-QOT1_s7Cxy%d<LLeSviZY1J7z*Xt z6*Dt1Fop<2<N_<1K@2En;|OP9U|{0_39@mlWME(r1j#T)!!7s@;)5-C2e-f`S_j#N zXm^MW5c{HoKt?hKLV5WhqZxxlK*oq>GBCzWe$Odi9|huqO})j!zyNVtuoy@qR01ZZ z2a<=0iGdhBEDQ`FgF^U_m5V>(07*hHD8v~ULpdcrBMC}E<QNz(axz3QNHK;o8cH#S zFqMIXvFMIqMbRw{QU=10IT;v^vM_)Ruwsw_34t(37-Xi^<YsPVMSWIST=+>Khm@ZI z$UBT7!jq44>(zU*!MyGw4^jm(2ZSNP;bIO_3*v(?RLp%Yhy%s4AezyY6BG_|AT|iA zg9ru&hP|wiU~)$ZCI)#uc#uril;NIS&%<4B&BnkW5e^q;V36=e=GY@~6q1oS`A8ha zYA8pc2FidqL<vGMFudbrU|>)N@fa;wK~4rSLAc%?9ABU`?7$8SHw!sXh%kmi{B2=| z92St2W#I-23&ubdkQt1Y;7|ZDK^UA+PP0Kmz#26K#5+*j$G}j}z-TEgu@OmBVkt6b zCK3mnj1~4Gi71>z;wWB)aulvX86ekyFvR0}Z0bnj0U!ym{c}LV5U=XVA%_jbt9oGX zGloEUP>(}-LEwN20%Zw(lt2(iL^T5gIEWebd9lQEJ;WId637t^@hHi$&A`CK$OJM^ z6+|#fgCm*|6yj<S0Y#ASplnM}q^dE1>}Qnr1jVL$PJTH9qYT&^kkl;;W^1VDGB7Ie zg7h*lK#b;q7!Aty5aT#RLDEpRF2rb13BzHFFqso<8pLESFk3@CSBHU-7izR7$dOE$ zj3ASk895mkz{W9UD*R_+V9;XF?%<fbfnTIPlaql#0y$aefD#O2hz=+bF$R*JKD3de z$^_&Hkjv*>1lfZeD>|Tz$ru)*1In$8fu!d~aP0&#pDBt*k7XVc7lS^C2g2NwR|~wa zmtbHJW@TXJv*Nbqw&eB{W)k1-B+kGf!p#^e&cGmQ!obXdCM5=vViaaz5SL{%6b@qC z;lv#(9>E>S9nQ_bAi>ID2s1;nvx$*WkkL?>fkCRPiIIUxVxp4-1A{a~c&d}6p)jM4 zFav`Ok^lpPtO=597#QTZ83h@I*g^KmPtFq(uU9ZZ*r3SGXebPFr&4DVBLl=LWj#iF zNtl1sB|U{f+8rdOJ4u4fP(d~w>Q_~C9SYnarE18*!oZ*o35t41FflM_a5FM6XkuzL z0o$V`!N9<vt;cAHYP}9PcqAAYboChQC2b`0_+Tz&V9+yTV3J^9&_|U4#S{Yrg8~bL zp(PAuFfs&cL7C>04Mk-q?-Ak5(S}y_T~L~lAz~|(c>qc?G6cYwFq)a6pnm>EsQd#c z&Bzb|V}5`NF*8)v&u4;KDn8jzRLkxjIPZf>n@|{&6RMhp;WK0Cd>Bs@D$2+Z3S&w! zPhKOeFxfzc#q9vp7?>H13?VQk%m9#aA#md);l_o)m{QD>Ukb}8f=oIBA{ZDLU}i8e z7{GN(O`aeo&BF+n`^Gf+s+f`*BLfq|Z>Tnym23>3z=00qOEFJ26qf@zcyq0I6DO!~ z#;ACXQRy^P-(@I$3ratL(!ZG|Gb)Nn;gbFambQY~4x|4-bu&V}$^xYY&}b=Ukm*_~ zP+@Z@4QhpfTn~$6SR`_=fRr<BVcqPh;>=Rd%Eibk%E-#f#>i?~%)-RV#Vpap!pLgM zoKeEc$-u<I%$C8z#L5U_F^e#=GJ_Z*tXv?94J^tL!NSO@4(2mwGO~(-Sd6T!Ac~EV zEe52SS&)&HS%ig=m644(j}dH%kOGLyoM#dN;o9tC0Xc#>7bMLH(ZI^Z#ux!Iy^M{4 z6B-x{49o?LlP7BK-dw45nQ?No&K2q6l9c??5(fR;yb}Fn{m|mnqGElwocyB9#JtI; z_2edd>6T4?sC#4bOTGHZ>H2StG#D5dE`UOYfq?<sD)r?P=wWi>lW1f1;8SR3Nj%Ia z;dYEq!08Mh2T1K7hRMqev^X`u6)FRR_~ea&@|zV53m7LeDT++KVk9zoff0+S5TwEd zo9hlH85k5NGa8FaS~7r|IE)MvprX)50E6#jLt}BtM5wF+)Pv<vRi%>?jl~(e!Q|x0 z6OF|s7eH0Q@(S4P3=9lwz-o4aNc)3OH44x~0Bg%Xf{DX2FVq%>;{2kL)Rg$dqN2n~ zz2wQ6CUXVi;|q#1^Ged<lQXgz3Q9{R|J7BSyiiMGa+Rr2BB)gR^B)4PL7fbu1Q-|? zVB()Z0t^fcAiF@VXqY%F)KMUDP%|1PE`}^Vxz@~EwH0cDDAbvtt`iRf1H($FIJjj$ zd1ILHBy$bP6sUG{G{ruX9nHlhpF*R}6-`!fa-q3C<K)Q;&Gi{&CtozzXFNZd(L$VY z|71xEeaR}QMcdGHRZUK`&}U*`o;=ASj`8N?j~3#RQ6TRyFffQhErPjKd9tFVIOFrl zmX_{}@sk@Z#U&-7DwEMvKA*hNQk>Ca@<~f~#wn8pt=t(`PmZ)IXY`+Z(MsG?6RJxR z>Li%?pP;6wp^5*328S`4_?*dx*5Z<kP}BU-WOq$Yv=*2A3KdO)(lEQOOrB`1&p3DT zL2Gfz`%rriqN!Ol`J=VCBp1~Dn`pAmlND{m88s$b+PF)CTgD6w3~Er9f(!&HSC~B0 zMqbhzDhjjv1W1~Jfgy6Tp{+PPvO%(-hBeeWhK$J<ZNv>5(DW8T`Rz~|WE9vYD1YAM zg*M`bYoI)knV?h#vvC)icqY`c6Cjt=Uqg}w=_~*l%)r3#1W6p^LN{m<dVwZx1r>jf zBo4B@A1eM0Dh_iqEZg%!TrqjOouHuvgv|i5A7s}Rs9qT~@iS0y#mS0x%Jm?Xb|7OJ z7#IxDRGLA>O_9Vwrf-0XyCaE%%vk~z_eK+602L2`ii5bI0D8a#Zv8Vb#6l%NhJ)}2 zkO~F{23R12#6T9@gNo-OsRxPQfr=MF#X($<1>Zmf0|UcEG;vt1I*SF=`(R)IhZ)Ec zSi!ptssSVhvVae2&?+=>E~xl=s5s1GSR>&Wnz$4+9v?!*xj=OaD57(r2EBkvzzkXd z75_hZqn&s?FDoSOK+Xc`f+bFAH1TsF?VwDBBo6XM5Y#j+G;vq~V1OhJGT#L1Tyuzc zJ-Au}nE?wYKZpc4{6HE)A?{;{L=p#C+y~MG8uCID?|_OYA&G;`fq5(!Nt^?eSYVB~ zLKF!G23RYr3`rbh5G*7bk;Fj`l7{-M6-`_mD&B=84l?HmNF0<{ra>h@Aq;YSI*4Fk zVAui`2Sp9Yf-sN<1_p*5XyPGI@k3B?m^u1Tb57$Bf6fXTDu5<ckOkFHgI+^5z$}I} z^}e8qFMz85fhIl=D$WQU^Mjdl6e`Y&5U*zdS$r5O!H19li@$-23!#a_$~tK@aadg@ zk0!1R%>o)o;vh#gFoMFLfq}sgNdn}c3aAECH1QIsxD8Ys7SyoB=mixA84il$z0kxP z3KfT`e*hKFnVje>&R8}1qLX-iD^v|gFUSpBpmueliLZl-_aTXc?1H7sIcVar5^p(@ zILLe!XsoS<h}VO297uuzDzO0~0Tu^2$^qnh1_p*hNa7&%PEhs7(8R5v;uoOeAnl+e z`5fx`n^19(*<7HU2n&^`ND?3mmOu@9i6*`PD*g#g{2o;N8=CknsQ7<0aS0F~loFWP zAx;Ci2xPGcNP>ZZfdfe#BnNY-Ad)ypeF#*&D4Mt*R9p^C92O-?>}WZ0K2(D?k_M2) z0-!KtU|=vo5(in#3FTWrX^>iwI4hLz2&F;dptJ(3Onji?j0_B644}Aybt00X5-<(0 zQaBGu9AtqjlwSm;LFz%`_E3KL<U}{|`c^0pBnz@0mQ*LBiGzzo1_p*zNa7&Vrb7Aa zpft!FkT^{LcBnWgbU?nC0*OY30}ydY(gtZNfJ&T!NPv?z$e=w?{skxvQVSB_0p;I> z(lGIFQ2t#g4HN$a<v)Yc5b=5j1{08J3=9mfP$U=_bfDtzk;FloU=IC(Bo0zK4@7|a zLTKVMpyI4h8e|5D`3^*Yk~SxZfmGJNfbxZ)G)MyogL;9WK$1oh2QlqIgY66q4Duij zk~x-8aV;cqP!z{Oi*9`m1_p393uHJ*!W>$BIZS5s6i@U)(*~=hBhbWQDW(8T{1nuh zPBih`pk%<nz%UDBOZ_r5S(q)G(8OW3oI(?a+42}o928I>`~^+?3)EF?kieO|IZUu# z5yFNixjrag6-tA`2V_hKly3v2Vd9UVd<Q5E6TbuHdqQcLxB-a4z`)=O5r^afkOewW zi7<!+*g;SskY5<$k;Fmj^PrN+XyO@A@jR$FEc3y}A3CApAZ6f&)?N^cfq|hHMS_80 zJ5+oLnm9i<*gXs@(8Rf+;v3P#y`bV-(Zt<A;-EaR4@m-Krvt=%hT}-$ARo7ZG%zqQ zoJJFGf{I^45(g#eKxlMd!y*2J6RCIyX_y5HD+UIJ7iby`p{e#gnz$e|&wNG`{|`0i zBa{YF&^iw6HSl01B(ushfU1<cPy;NX7J)(mB0jmx-%sc*)E<yIAQcMClP~$N(*(EC z85qD71Vk8YI)e^K9kTf5g8}}Gys#V&Rx~-$Sa`BQkOY?pbY7r>VRBHA8B;lUm~irf zAPpGvL68P#In)8HlLdp#MQfnEUr<*=3^WWDo?H+t!F2#?;0@8qlY-4S%lN?33{xjx z3^wQF2G2S(FzlHe7%V^8AVh+526TkRV{%}KIn!~O$z36KOb=Wqp9-<#{0<r}Vqjp{ zF!>@#b*O~sa(Repu(mdsHyLbos060~w9{=cd19zJXFPcRh=HMU^2JbdrW=}*xx(z2 zShPUHppz5AG?+NFCU=F|acXFR4PmgDd@;<N(*bJ4jmd)H=AsGO5V;qi;ALQ708PRR fO^yxM=Je2m$o!f-F-U&$hHwc^3Fz?O3y=r^mKX>1 -- GitLab