From 421d8c20ff4014ddae23e61b6654666b039bf00d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 2 Feb 2014 02:28:09 +0000 Subject: [PATCH 1/1] moved for svn-git transission --- .gitattributes | 8 + .gitignore | 4 + chash/LICENSE | 2 + chash/chash.php | 197 +++++ commit-rest.sh | 22 + commit-trunks.sh | 18 + lfdb2/LICENSE | 2 + lfdb2/read.php | 70 ++ lfdb2/test.data | Bin 0 -> 102400 bytes lfdb2/write.php | 69 ++ lint.sh | 10 + mindmaps/Local File Database - NG.mm | 1080 ++++++++++++++++++++++++++ patch.sh | 15 + patch_core.sh | 8 + patch_i.sh | 9 + prop-set.sh | 15 + remove-deprecated.sh | 16 + todo-all.sh | 17 + 18 files changed, 1562 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 chash/LICENSE create mode 100644 chash/chash.php create mode 100755 commit-rest.sh create mode 100755 commit-trunks.sh create mode 100644 lfdb2/LICENSE create mode 100644 lfdb2/read.php create mode 100644 lfdb2/test.data create mode 100644 lfdb2/write.php create mode 100755 lint.sh create mode 100644 mindmaps/Local File Database - NG.mm create mode 100755 patch.sh create mode 100755 patch_core.sh create mode 100755 patch_i.sh create mode 100755 prop-set.sh create mode 100755 remove-deprecated.sh create mode 100755 todo-all.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e4f59a57 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +* text=auto !eol +chash/LICENSE -text +chash/chash.php -text +lfdb2/LICENSE -text +lfdb2/read.php -text +lfdb2/test.data -text +lfdb2/write.php -text +mindmaps/Local[!!-~]File[!!-~]Database[!!-~]-[!!-~]NG.mm svneol=native#text/xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b2e94f16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +lfdb2/*.bin* +lfdb2/*.out* +mindmaps/*.png +mindmaps/*.svg diff --git a/chash/LICENSE b/chash/LICENSE new file mode 100644 index 00000000..74f55a96 --- /dev/null +++ b/chash/LICENSE @@ -0,0 +1,2 @@ +These contributed codes, mostly by myself, are for testing/experimenting +purposes only and are provided "AS IS" and "WITHOUT ANY WARRANTY". \ No newline at end of file diff --git a/chash/chash.php b/chash/chash.php new file mode 100644 index 00000000..a1e91c28 --- /dev/null +++ b/chash/chash.php @@ -0,0 +1,197 @@ + + * @copyright Copyright (c) 2013 by Core Developer Team + * @license See LICENSE (public-domain) + */ + +/** + * Calculates a simple but stronger hash from given string. No salts are being + * added here. + * + * @param $str The string to be hashed + * @return $hash The hash from string $str + */ +function hashString ($str) { + // Calculate strong hash from given string + $hash = mhash(MHASH_RIPEMD320, $str); + + // Return it hexadecimal-encoded + return bin2hex($hash); +} + +/** + * Double-hashes given string. This is done by hashing the given string and + * then hashing the generated hash again. + * + * @param $str The string to be hashed 4 times + * @return $hash The generated hash + */ +function doubleHashString ($str) { + // Generate hash from given hash + $hash = hashString(hashString($str)); + + // Return it + return $hash; +} + +/** + * Calculates a "modula-hash" based given two hashes. + * + * @param $hash1 Hash 1 + * @param $hash2 Hash 2 + */ +function modulaHash ($hash1, $hash2) { + // Both must have same length + assert(strlen($hash1) === strlen($hash2)); + + // Init new hash + $modulaHash = ''; + + // "Walk" trough first hash and get every 2 byte of both hashes + for ($idx = 0; $idx < strlen($hash1); $idx += 2) { + // Init modula value + $mod = 0; + + // Get both hash parts and convert to ASCII number + $part1 = hexdec(substr($hash1, $idx, 2)); + $part2 = hexdec(substr($hash2, $idx, 2)); + + /* + * If part1 is larget part2, part1 is divident and vise-versa. But don't do it + * if one is zero + */ + if (($part1 > $part2) && ($part2 > 0)) { + // 'part1' is larger than 'part2' + $mod = $part1 % $part2; + } elseif (($part1 < $part2) && ($part1 > 0)) { + // 'part2' is larger than 'part1' + $mod = $part2 % $part1; + } + + // "Invert" the result against 255 + $mod = 255 - $mod; + + // Encode to hex, pre-pad it with zeros and add to new hash + $modulaHash .= padHex($mod); + } // END - for + + // Modula hash must have same length as input hash + assert(strlen($modulaHash) === strlen($hash1)); + + // Return modula hash + return $modulaHash; +} + +/** + * Calculates a "sqrt-hash" based given two hashes and single-hash it + * + * @param $hash1 Hash 1 + * @param $hash2 Hash 2 + */ +function sqrtHash ($hash1, $hash2) { + // Both must have same length + assert(strlen($hash1) === strlen($hash2)); + + // Init new hash + $sqrtHash = ''; + + // "Walk" trough first hash and get every 2 byte of both hashes + for ($idx = 0; $idx < strlen($hash1); $idx += 2) { + // Init modula value + $mod = 0; + + // Get both hash parts and convert to ASCII number + $part1 = hexdec(substr($hash1, $idx, 2)); + $part2 = hexdec(substr($hash2, $idx, 2)); + + // Calculate square root of both parts being multiplied and round up, then "invert" it against 255 + $sqrt = intval(255 - ceil(sqrt($part1 * $part2))); + + // Encode to hex, pre-pad it with zeros and add to new hash + $sqrtHash .= padHex($sqrt); + } // END - for + + // "sqrt-hash" must have same length as input hash + assert(strlen($sqrtHash) === strlen($hash1)); + + // Hash reversed "sqrt-hash" again and return it + return hashString(strrev($sqrtHash)); +} + +/** + * Converts a number between 0 and 255 into a zero-padded hexadecimal string + * + * @param $num Number between 0 and 255 + * @return $hex Hexadecimal string, padded with zeros + */ +function padHex ($num) { + // Must be a integer number and between 0 and 255 + assert(is_int($num)); + assert($num >= 0); + assert($num <= 255); + + // Convert it + $hex = str_pad(dechex($num), 2, '0', STR_PAD_LEFT); + + // ... and return it + return $hex; +} + +/* + * Calculate "genesis" hashes, please note that these "genesis strings" are now + * known to the public as you can read them here in source code and therefore I + * will not use them for the real genesis hashes. + */ +$hashes = array( + // A famous quote from Deus Ex 2 - Invisible War + doublehashString('"Informations must be free." - AI Helios'), + // My name + URL of my first StatusNet instance + doubleHashString('Roland Haeder, http://status.mxchange.org'), + // A famous quote from Linus Torwalds + doubleHashString('"Software is like sex. Its better when its free." - Linus Torwalds'), + // Possible truth ;-) + doubleHashString('September 11 is a big lie.'), + + // GNU is not Uni* + doubleHashString('GNU is Not Uni*.'), + // WINE is not an emulator + doubleHashString('WINE Is Not an Emulator.'), + // FlightGear - Fly free! + doubleHashString('FlightGear - Fly free!'), + // Linus Torwalds Quote + doubleHashString('Your code is shit.. your argument is shit.'), +); + +// Calculate "modula hash" from 1st/4th and 2nd/3rd +$modulaHashes = array( + // "Block" 0 + modulaHash($hashes[0], $hashes[3]), + modulaHash($hashes[1], $hashes[2]), + + // "Block" 1 + modulaHash($hashes[4], $hashes[7]), + modulaHash($hashes[5], $hashes[6]), +); + +// Calculate "sqrt hash" +$sqrtHashes = array( + sqrtHash($modulaHashes[0], $modulaHashes[1]), + sqrtHash($modulaHashes[2], $modulaHashes[3]) +); + +// Calulcate modula hash +$modulaHash = modulaHash($sqrtHashes[0], $sqrtHashes[1]); + +// Output results +print ('hashes=' . print_r($hashes, TRUE)); +print ('modulaHashes=' . print_r($modulaHashes, TRUE)); +print ('sqrtHashes=' . print_r($sqrtHashes, TRUE)); +print ('modulaHash=' . $modulaHash . PHP_EOL); + +// [EOF] +?> diff --git a/commit-rest.sh b/commit-rest.sh new file mode 100755 index 00000000..423f9adb --- /dev/null +++ b/commit-rest.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +if test "$1" = ""; then + echo "Usage: $0 \"\" [file/directory]" + exit 1 +fi + +echo "$0: Reading projects..." +if test "$2" = ""; then + LIST=`svn status */ | grep " " | grep -v "X " | cut -d " " -f 8 | cut -d "/" -f 1 | sort --unique` +else + LIST=`svn status */*/"$2" | grep "/" | grep -v "X " | cut -d " " -f 8 | cut -d "/" -f 1-2 | sort --unique` +fi + +for repos in ${LIST}; do + echo "$0: Committing in ${repos} ..." + cd "${repos}" || exit 255 + svn commit -m "$1" "$2" + cd - +done + +exit 0 diff --git a/commit-trunks.sh b/commit-trunks.sh new file mode 100755 index 00000000..5c44decb --- /dev/null +++ b/commit-trunks.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +if test "$1" = ""; then + echo "Usage: $0 \"\"" + exit 1 +fi + +echo "$0: Reading projects..." +LIST=`find */trunk/application/*/*.php | cut -d "/" -f 1-2 | sort --unique` + +for repos in ${LIST}; do + echo "$0: Committing in ${repos} ..." + cd "${repos}" || exit 255 + svn commit -m "$1" + cd - +done + +exit 0 diff --git a/lfdb2/LICENSE b/lfdb2/LICENSE new file mode 100644 index 00000000..74f55a96 --- /dev/null +++ b/lfdb2/LICENSE @@ -0,0 +1,2 @@ +These contributed codes, mostly by myself, are for testing/experimenting +purposes only and are provided "AS IS" and "WITHOUT ANY WARRANTY". \ No newline at end of file diff --git a/lfdb2/read.php b/lfdb2/read.php new file mode 100644 index 00000000..8779b654 --- /dev/null +++ b/lfdb2/read.php @@ -0,0 +1,70 @@ + 0) { + $a = explode('.', $chr); + $chr = $a[0]; + //print __LINE__.':i=' . $i . ',chr=' . $chr . ',unpacked=' . $unpacked . PHP_EOL; + $unpacked -= ($chr * $factor); + //print __LINE__.':i=' . $i . ',chr=' . $chr . ',unpacked=' . $unpacked . PHP_EOL; + } else { + $chr = $unpacked; + $unpacked = 0; + } + + //print 'chr=' . $chr . PHP_EOL; + $decoded .= chr($chr); + } // END - for +} // END - for + +$decoded = gzuncompress($decoded); + +print 'Writing ' . strlen($decoded) . ' bytes to output ...' . PHP_EOL; +file_put_contents('test.data.out' . ($__factor * 2), $decoded); + +// [EOF] +?> diff --git a/lfdb2/test.data b/lfdb2/test.data new file mode 100644 index 0000000000000000000000000000000000000000..63376f306ab52145e3f36770fd199960288c5bd8 GIT binary patch literal 102400 zcmV(tKsyy${ko1N60 zX!t#{n|TJNJl_5np+mR-R~gB~^e>&-dRL2=;Smt@I-(erNbLq|Vf)%Hqsx22Y|J^1 zz}89G6~__?c@U&jYaP%&ln!gU7MFI#Xttk;l@|M`x&P0}fw=*Ft|K3B!7Z~qzlR_1 zXVGnA|FilnhCrEWM^UuqMfq6?9?^BI*$jtN0-`5;3F)p-lNKY-!}k^U*lJSpZM9xVbCqt!(OWzz3!1d zPTMP&vO4(nYvWk6bR=*O_6e_vHM=$*{Eqp~x-FFmIlB{E$+^}>`96Dk)&ZS!WDhhK z{pwah7Iw5GZn9glQA!R;^8cbf*$CoQ=k5HK75b}0`+mz8TV_Xk%Un9&u-x6P412K} z0OAx50o~mwR2DNzcK4ePcrv$VwnTqWwe=(^Us(}f^{tu;D;@H}0AOAyK#mXY%)!!h zBimE_(WvhNp=RP~KymCZAJnp?xYvrs6@ zI!6T;pdUklf5nDVDDul3w|^%X;^u7E>0(N&BOF*z&-I3!dcJ!b(JgaJW$N@c6$`IG zzYC#4=p6`6HoDuUUp8Y!ztU;xQorwOAn|0?17!?lo6l5n?m|h;EnslNpVs89eu5cz zVnzJ`0lFsZ>%kon1B<%T6x>Tn;nuQan1GO3+IUxa$*7m?(pL2sOiX6yQ*P@vEZc$r#ol=>s|eH&E*vUAeqFFF zx`T-Ddna-@sSO*V59R8v?TIAj8TDZT1~Qxr+21iD-yfnD^7xpQb+$_?<8LjSYfuAl zlS}8P+ANonVJ{#!qAxi|Hxi3G8O3O}{%SBDI1RiPa60E7x!BGY_qtHHIRC%H0xXRe zqK>~I#3+_SC;0R1wV(!v|N0Hs2IlBGk9z*k6p#ZJ(uP1QROn(WX{)AuiG^Al8?Yv4 z>tJCY;}<7@YWD|rOt6okq9@zX;_gC@g*F4-g`4*k4x1jqE7pW$p+~CbNqZYltrYOw z0rRd)WQlAyOoNPi2$nXukwY2*d^2SMpQpT8I5x)4u5Q(2VA4JSV?-Aj*A3WLsQf^z z+7L8hN*_`1!PdDAqUr(o;>|V#OM5u0BTS2HxmVv|Jx>6&xU9(JKMJhOV?bosHXc6zzt?tyRi&P^2k}X z&M4gA0u7ttAn#WY!_p

xslx_(4rIhKLZ3I%okWz7d(CSYNWP?T#b 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

v0=0r*WX*rE zhg){t8R0MR>I&a^XgKQcozd_dcIQ2TkbQ?2Kh(+1aIKt!eeTC6%_8I7^OlIWrBiMV z=9U0=2hJH*^IDJs(WGvPb1?MeQ4lxiNTrT^SJOOrRPDe)u~Qs=-(fMmZX^CeDHp{g zcd*2Mz-oF{RGc^+3g%+FMeHnToSusW-Mh1pjsu9gUYagle5|oGF$+yg$q>cbHJWT| zw_Ve`-uWP$8bST`$AE^Pg)JxIJ=AnBH$r00v#7p=TWiJm>$kV8l{r$Q@Pi(50~#vJ zZT@FPW@r5`X8t_(Us`2Rkxy&ud+ibIH*gRx_4(?me*VM5Q|Fm^40dYdw-CN9PZ~rb z6eAB+nK=BFm2kwCHysv6a-$drcFk7N0HQLPgM>srYe%`zn=wva>mtb~Cz9-}$De$( z8;Z+kmWL;km&naqv(@3^NGwG++0EL;2_g#0k$`+NDj6FhqbN>Q7!ok}4LKW0laM;4+xkph6Zq-#cJ8Rlf7MDqgB67=liy92LF=eDe`tx9i1W}jwi zb|9fLS1rKvIQDJr;LEHFdR}CO(~gHKq6^5j0z9;i${;krG@Za0aDz6U3~(wEWHaZN zhvwKs*Fl3ODx9wJ9`iRR)dl#az2IqDmW{*l5 zd;%&OZ%!}Yv>d5?2hPCU&!H%3qFL>|vHx^$x(Srs1|~KDaJ}oSh`4bn-_aluzlHmH z`aQsU>pzIw_fm!;P@Q{-6>f8v@V=ci>^_1^__}Hp+KJ2?t$Awt84&?5Qlu-GZijW;UTULmhp9T1^{>caQKZjFrwE2{O zBx;@IzSl*ohb)l)qfLN$E%3d!E8?+#dS7Ch*7}%JVxz-SzoucdLns)03_%5QH~%tk zv^>}A&ZttBb_P6kW9Cydm6$>fYBnW9*hXsQRyF~=rwU^`=zr@iNcSF5er5?~f4h$} zk#?5jppHFcq_aF~?js>sf2tHV+p^8)|>G zDvxI+^nbK$D9#=g=5+iY++ZW1h1y9Gb`wi#f%8hqv z0uCse7T1+FFg-{42^pM6MK12KKJq3BsYT(}?r=YA{@sE_kUG=F9A9p8X;lk)9d6Z1 z22DR*-e_{0KGz$VumhYhVLYY8i6R0w>28w8_N)&!07wxjl-?x;Uwn<7>kp&K2m@oE z)uV?F*c4Ut7DV2~b#Ix+coY@r#9x}8h8u7UB~>ameZxEsiIj2PIEjn{*^x@y_!`Wg z6mqsLD$8PpL3)9Qmq}xy)Rp0enaR&!Qlg3q=wo*DnRj7ZI)^wUDlC`tr%`!R#7(ur z0(#^f;4ZL>D&!@McsrmznikwI%C#ylm!V1Ivv1n$mn^_$E$;D2BW-EL5FVB>Vl(c+ zBU}V~{5{kvFR+uj-yAxc=ldM-%$zp83wxuu!Fi^heTevg0=$2@l>uz#e?Ke*888Bv ztl;(48k%^0ai=Fu449X_)jTmIJ_AmU-c9a}DIymmE2FF7yZ3iM@qex^>Znv2!v~=< zH+Up!88djk#C^4RqKij{E zOyNwx+=^`Bkyln^FL;WQ{A~7O$Kqod0M6PT0*lyg?6!<;d0L5>qgK2}cs)8_K|4|e zDPYU%_N~v29TC-flz@^p#qBxosv))d_@m+B)ydhc{4C;-eCsW=_k?l`+ogwI^Iqzu>Y=pgI+QR};`+J27B>pY?xyD` z0~&Co%O)4v%X7Ea7*0Dxx4bpB^zTCn?;X-gaUz9t!y z3A869O>a@Bl~{(ps$DZ}B!x;S`cv642wW%r&U)Z00!X_1Z&&uSYzxlUJ|b2z)<@uR zr69(ykhN#0c|C-_WfbVJTfcZ9o-B%oKU?8VC7Rz-h?1LAB2M4V)94pcNK#L}_07FH zz+Lr@1X1C9g8t6;t19U$L>2zVQpAm9Xol2}&|a1WVJkZkD?dafHYw!_&+*+F+=b(0 zxd*$62E;I(0l2GHBCtLJbK?_GPo_lbskMwswl4zU1sjI|H|2Oy5xfQnkA6PaTnrw+ z%w}E}0;w&M=EMMum`hhdytXJZwFm^}B~ICeqrJIW-fs(gLs_mvj z8&9%IJ2X|xp5ve59d0=gvr*<46IwRVm3s}!(29-d2M`Iez}|)wZ`U4$ z+OJ{U&P*vTtO|0|EuOP1<~=3vhEm5Oz&f|~(_+v9-j4;?Mm2#=UytuSKFV*B0p?>S zy>Sc=At|W8sUv4wQuVKNeuK0r62)Tc5gdVW5m=<@gmSq6#2pcBV^+m-X$(czG5(7F zYW=70S_(Pm9`UQr(jKC&;}-?baU~?p*;}*zRjtHQkA7ObL1pDt!cgJUfZI_g3hsx% zagYZE=S>~pifI~C0F%v&`eCjoMHtlfILEdQ(Xb?N zG7YMc%BV{|aeANL93dXZb>!wluFh6_I!yM2@h|IK4)ca+j(K0}y%%++A|U6Opi-?{ z8a;kkT_8bMAgb>uHXuJfILt;!Kl9xp+~-r74X^>@`!n5fDQ!7BT$jXHpN+GEgzYIA zc0&tF3uf`}2=Kkh^9RQv?8|g9#W~B-yRz44X>>JcSO1&c#*K>FFMnuvlvf^O*%*c%`6=Yl4@zVhR_^G_;QdGXkjHL)CZzVgs^-EphFM6?fYMqb{* zn%az!AWa{PvJO-hqVQAo(k@*(iXiZ==8f$8KKn|*MIEU`F(Q!qeFZAMS_Q-Hu*4Ep zd( z&3HhS-U-~*X1w{ytcF9fMbBeCByI<$eP%!lE~L{_CSK6!(K|&}Z-L#b+wz->&ZvhI;OB-QCx6E3Lrxp zLP9a_$5&Q-)E3%Y|CQZk8Kj2Bra`BoHC!je?_Ak)lrA*<^p3R_%dwT0CV_Zu*NNkZ zJgCUIfx4@Jhv4^(DdZFhp2|zUmG83_~u zexHC3$wGbUlSOcRnio0r+>mHjVoLv(DP*rrG9CWY5QVU0S=@OG3WcNJ1nZcXG>x_T zrb!gTC%rb31nn4aLyA>*1rsixp(G)Dkn{EPHuw(9b~f^cyGg3;9_!qojk|FG0>n)C zK#JUpjy`id(-0wV?=B`>{V?x6_psN*)yiNH9^ZZ~?}+(JY3Y1BkNCt~iJ(VU@!+5r z1dPO|gGTI?o{!u4t;oImin zpmye9V1$}n*T}G3xf<&`me}A(TRFH5ar;WN)ydQ=21S zs8^`rD!dj*42XSa-cwO&>k69+_SJL86jC>Z8qcSENl9F@tTmswWT;ZN9GY?ce2Q-u zR3a!y5P*2DRh-_)Dytuifi|9XUNc9ddA5}qw;hUN_RvHs19akRW574e;bptZ$GEJ@ zGABLL+PXymDaJAR zWZq*Tw=B3@sU{l2O%^m;QLHtAu7D4Jh!{>!evJ2GZopQjPZYM4>|Nz3(SSM6lZVsHzC{< zce$ABVPS|{VuFlA&FFgl7~=IR>tvr#5o3@=NI`nl#x);h`^1+&PQt~0!IQThHtzo! z+c6e<+d+lbp~;4Mf*0-Iz&iE>VUy6oVP&Q{z2vLHWdWzbA;Xz~c3x8}Z5e zmHfis#h0pzK<+r0F5pp(h^rA3rZFcX*RZhc>lU$~zU>2V<%ht}=y$cizUUgSJD#Xv`%x5Oan1XNz;4J@Y8d-g&_O+CpbGq?et(2>(vx7bsvNN7wbQgKV$gL`HZ7e7% zd|814SueiBDG#GCnjr$Dg@)LHWdvf0 zFg!r-nIJr-Ph3t1f2A@gBcO}k^Rf+GBapsDMY%ivPVcEF%;WUQxfh1Z%(i`>OADQS;$Txo-o zKOb$zG_Z`esXNY*d8D!=DPw(M0Eq=xiC@R~5qI|Z9D%JKmQ4NAD$xNwYg=t2%k&Xo z)(eapKqx0?ecea^`PBh_o9FEeui za2Qd8MFQKXE(_pwr?*v^Y#0?8182c77Q=phEgC523)fOfI0z%(Ps(gpmK63nZq5q~ z0*3Tr&R)kbzK0)5UruPSkC6?<=hx)JYIE{MOY9;X}#)AX-o;ePH}h$=y5IO6m8>tzc$}l9w)++aV5V%EPNOU zz%kHX-gDgqad2zgrfQJ3Bw>!1z@ixaldrX5Wu$CfGm;( z+;qX&t}2903>Iel?WmXuP$l~1@r^P8FR`$!d(V_;W{t)&6OwM$fqHZ-9ZcVO4s2!6 zr7Rp<+R|MLdux=3q`P=ZE0tR-%*}GiBevP~$)^QS1%D-gPhRp9j{b>0cQJaKoVYZp zPn2%7A3jHP5D_jj*={-NM@~CtTF@3Ase*lAXv=t`N)F`)lws3-6{VlP5I&+PvWRNN zbqM&c!*_wY$?f*!7*5;ck!p!keT9sVy^cZDMiI-2x=X)-F z;~sa_rH^G9$)i|EwYtZucr77qBLC2(T1t>t-MM&J zb6|_>5cA?d{M8?M=PzjO07m~ok9kg$XbIr86C!PLc@7xbmXA7p*z+Fk_CKisjcn<9 zvxCa>02%jG=3k_ap8}*ICe<^9G{~-6(mpbU!XnJGa;t_SFmdpZ=L=qu`#L_dph#Id zDE42QDK;fVN+E0v9)Fr%H1tv9n)sP9@p=h3&%4g;uy9ttrF{Sn?6=Gb1>9g|@+ zmFBiJ3}e1Lp6yYN%iNqFf#9r$uFwp!olu(gSy2QX=%vHmWsWXv*m}p1WZ4o15>PM3 ztR`;QQrqo;2=R(`Qu!T}3%nEg&oo9|P3sSmr~lgeLo}d zl8fm#L@AE8tQgL*{Zi?-$1bnKG~WO!5ko4oXav(t9dp0R6|fTa;_Gd<_(#>Y^;Ew3A+6+s4ik$T)MHqvWwZB%nIvfXcX7oHgMISo zop|O;(v(vst08j>_Q-YH$N_&KXgc?Oo4-26gBs?r7AXRyU6yLZW3q6R4NvzZojTbv zIU>zw%>0IET5J$s_e8}%gk+AFoKZU2oy7U<%DFB}!fILFh5*HZR!okA2?Qx zY>P2DSw)eEL7jqK%dZ|64Er$^vuCm-O$(O+ZgBP zyW14R5ufvqu{o(M%OfI68S_?Q_M^`1sqZ`-qbPbXzBQJGY7Mys5$^>8nX%0tjT+kK zGB8Q9bkR1_5r3h@yms1*t`F5y%`7L{27jygEZ_ly(6}Y~X&NU-Ztbf`)5MUueZz@O zTf(LMdoR~h6ZmHP+QEm?FFtLA3u}xYZwm(^lNyn^|T4!+*&)eLbU7 z(edVZw#0J8W*Y@*kgc>D=TzRqnwbCSc&XZ7#00`Nr9+C<*m;BND3${a(hG?e88pPo z^uZ1~O)Yt7zvSP-Ge7;nZZwFX_xNck8N5en%?MOYKYoNSor7Lg(eo$s5Y#?be;r(Q z4efZ_`YBc~Xp|kV-o-&lm+AL6;G}-jb;#=;Rd)Bt`t`b9)jx|r8D|m8udB)(Xu{<6 zf~JAp#dpi8x=A+MZ>0}Hx(c)!0DkoPLQ3;OTd>s?PTvkl< z!shZSm|e{Q@?i>}=az$byf?`)DCi;!7vq-98(O>xxb;3giR3+#o?nr#ryXS74p%s! zEo>AO3-b?gPjmAeGxT`JM(iVg2Jl#`Z zg*x=yWAC{bsf#gXl%1Q6=c8OKVu;yAmI$HNOW0E-UZ5d+su={iR%A`J!^p4~e(Y@+_E=VlcCCO@49w zkrm(t&yj(A#A{zngH8Xf$&dt;o5bex&rBypS(x$98cbDK|9D=rP`MY9r8`M2k9vc` zXQzdKLA*w%u)NGegLG&VO2+kB4W}}dyQy1nBv|p*B0XVc?mHQpuOSW+`{k2Ugy+UW znoha*w^56jb{21LbF@ow-ED58H(^9FN;XEPgpa&fgHR!uqGKEr!@{pDZfG)><)N?K zcx9I!D517DWfW|#h1Ki+*eKxGPNj-yD$U~{71&V8C>V-KJRy0+7s%?ja04{1`cO@w z=o9{u^Qh`@w#Jgem-frP-|~&U;dWP_rsjGTZx?CyBS$5hdq|cYQw4-E#S_6LbiDzX zIP{t_mww^p#E1Zy0m!fg+kjb9ywMo)AVK?RABP+q646Llr4}>o2uV7Jyn<%B zrUpfA)>rU1$zpSu;-7N*xl(JjUKpvf>oFxg>~eA73Ov7^p$X#kBDX-3PYg0lHT}^kqj%jNWx@1|Vx#*yRTPCYVafye)S$Jpe?n)@`43b00DqE%&#x`KWw(XA#Wz z?7h4q6Ri0HN>i8oxx+|`FO)+RY6QS5rU!2ACov?KyQzkqRs{8{Je<`*H(>SwgV?Vy z1$bf7XW29f-j_)p+G>vY)CpXqh73K7_3dGXK*d^1n zmy>aaS>bD&XFg5s6EHzi}Ko2V-#}D|1km!td>sI06g0@ zJi|{>_B0C2-G6(!$4p$3?n5I1H#8V^WAVzL=FeB4JqGjn)Yo^iZ=6WLkU|8a6~Fcn zLPfuwJ{2Iu4&WS=5OpVQIg7u7~7;LZMjkXGr3e zSh5@$CLsFTz*{TLlErZAR}3VTU?KRX>08#*E=He$;AT9&N9)|}+clrLs1-9~71{2n zUIsV~h(=se7?<(9IGdMnRivKIIc(+>%L31iVb%Wk-R>f2eM&3aobGST{4{<2c2guJ z&tumvPQdbFc90p6*mfw_VcK1!TczaCt5#l5u)L{W^=+Eh6k3eyP6DJyHOys!7Ogxo zR*7QmZC`W3oAMI3o1k0D^~&n`OAAG_Rtk0Qbk%jBoApgInkTZm7w>2Ww!}VGfV6WpoJLy$Q2n zfbncBf+HQI@gk7*%2QCJKv%NV_-|I4#Kwby)Dm-g~f<$jD`DXR3-D_(=zg&Y^1Dk zpkK0N4&vubcD?p6YY{#^4b#td`9UIl6=$$3$QYFPfNRtg!7FPIKE7P zA}?S?-tXo^qy>+?ODP_tdsX zzQAyHfAGEfH7#H$wz3bB@d|jEP)F^R-o=Vvkhc0kLUrIkYc)=BCcgJB#m>qPoP(iI zA-}<8w#U#BhI!QH7N!PFz3XP?n~T}_H2iE}*(31=buc$XiqWM|;d$HX+OIr3(3e`{ z+uwGAaLcT=6ja%W)DPeC;T{g*XGu{bW<#spD?A7*&d$nQHA2_B(HIiKQgQIy0JT(r zB|q#_g76Zgj}N4ntxdUy*dx@ikH^PFy17wRsAajqu$!u?DRbpD^dma$AGiH*-J08j zKKc3=uo*(#q}dX8shRe8=%njSM2Gy4sTK?K%?WH}&E)hON3>^BKSb8$d_{H2XowN3 z;!B<4#7gUaO!2aN30HbjSA{6LQXvdAl$R}#Ym3T%bBGCDpj?FitwI8bMI(EnFfQ;T zDqF+o^c`%C%-Y6~CG?NIc2@dQagY*X%(wpyq@HB{0B5wi5$J5Fg2s?kx&q9rS6vFj z_TiDwPb)#-3*t>!D`Txu(A%Zq3ct%S?b|O=VYLZS@fVu7UgjjNPc z8>%2fhgeO2)!Fw}(4(m;&_v&u>HONsh4L0yRwig`JLxvD0n&ShCzbne$+j{KFM!QU zOz8ET0n#+F383k8@xWQ=4Iw7Yg|M3wAo|4_l~2dnF$iT{nI`l#RNJg;h4SE-AA^I2@(B{1Wt^k(fNeJleE=QH7$YyU$+kndCKFb&%}mu8zwO= zfL2Jf0vg%ga!(+N$%~Za)zx@BEf6qc`_#1bi< z15!J~11oU^bq#fksyUn9XaUZk%7s<1Xm0ISlYyor@5k1evFcr2k>4(3e+YZ{|F>Dq!uFa$OZz=M$5Fbdq9#%vv!zU#g%~>xtQC%UvR;`m3A|(M&V4 z$%I8W;KW6CnpYlV4Z$-X5s5K40bffv)zb?j zHJ9Bg#A&Y0oa+V89@@p$QV!lh;xdqT9fSOwQ}B*2$t8$-cIBA zx=-GqE3AUNKL7(NKjnO&!D)a%DN%6nB^?(iuwC#grH(Sphze#2kO;x$Wg&Ef##fAB ztM(6B(`GVo4=P~Hnp8k;qUQHPTqvNkF~mvKEIxVhgXDU*i0}24i7+zja`rDby;!d&3Cd{5{9nT6!>`*E<~?DZPa11 zb?Cr01H0lBk0ByDG=I z^bc^Gw>z6-&EdxAjlhEMutmB9rotg{$%&khb$vHrJdflDe=c z&wVg$bKK_1yKwqv!lc6=xa$3{O@Dn)a%vDINH3zINVW{*5FTE`u~!y02jxTzPM=?m zD88qH$6H!Ef;cZU`-G7M)N94}BmCGT07_fjlZb2WUv)nTv}itUxvYlO;s|uxA38R$<4I*FOqsh_L3FjjvGX&BS%J;R*OH^A8=$Tvv zMXSL+vChKMQj1I}kBFp1y%y$2m{paxyM^)j?ZGGqUB{EMjeT&iEBM+&8z$~{RJ zUwBxC_besb?T6G4tCE8yOchG8($QOr+hH+ZVe!j-|G~K6oalk&8NXw9dcZ%nJ(q>kLnlZe;*r+FC=ZxM)k^_W*! z=1Tygfqyc5g!yemzq-IAPl)%*$}t33^a(gJ@}BY#n1rc$Vp})UcZblHEe8Ha2cg1f zevceUQ0t(&A?ykIkY%$yLk-^82X%}*og2S0KB^c`!c;H4YsbYL__ETI=zAl{EjuTl z&lpjKj}c!f!aD<$j48Gf5zagSZlc&7uiB(Clq8+VSFeL2n|{*$tMStwiV}^_r1gws zj|Ug8_oQGroozHOu<-B)DGuN_I34;I1Gr@*u)=bySzZwk@tfzpEO1$!{CswI2elLgh2w(63mw z4-8;A%VDF^zAgElGR9^Se$XrH+n*@5;CQB6bwu7a`Gct61|9@C2Y3JeiD6}nsdKo* zYowHMISFELUOIQdfej^!WTqL`AAr3ZVOqS{aA z-jFpHJbGo?T)l5J8^Hxe_=1@k(^8OmXokeJDj(9ACCM9x#z++K<@-OTx*|epmLt_R z@fkd+D@#&i=_~AO2DfWSUAFRc(6@BhTz<1}S6MJSTv4B$d8iAuGMeZ#CMGZ>eI$27 zrSjkI34V7xk*uPs@Wg;l>{>Ewd6aYnscV$4|Z8-=axjj%5DM5Ci@-+G5f9io%Hl7BQ+Yvl0iDzbNw+^5bmw-9{ zQ;39lS0278SmQaxgIW)A!b7k@1?>R<-2mLr3cU|`JkC1d5M$=FD0{5K=4uHU*u8c6 zH&FCzw_Mo7qq?B|kUA8S1Ke`V6c6PgFXm6~L zjkwOt7>30G>6GOD?Wez76(o}j9PFFvin|^UK#&R`*p{i^^~4vpt5Tlv?nkA2EAaoK zYeZw0MZV$p?GpaW1d@5)v0?5N7MZM8%7F|ks<)u>y|iANdXuqD=yv<5!n0v@*c-o= zRvD5&?B9wT#9&~>`Q0PA;vCoN6*X;pm4)*K@?!3V51kDK!Q`E$w0j+DFGWS|I$BV^ znkI(GgKoz)7`*cYzI|4b?qmTQ88s7;@euxp!43f0^3fi1t5PzTe;SDo?C zCumO6Sftsa0_<1xYErDJO~*X7Ycf2dIMf|d@<1I|w@SSb7KtJZs1ueFjU{uJN))E? z?qG*of}eR>o@@IalbV!DttY5*yWWJ=?z;<&nFmF@0|Dw8 zase2>+0!C{2j>f>_BbUOiF!4cgO)a4=_jNua(<$%sy4l9%J;Iplk#L;bQb7@kICDC zae;KMDrPlYeKLj`rL=*XTc%tDm+t8YU2*nSXZ;FX1o2IHgkgT(NwFk;+| z?>1#s%zppJODC8*rN?``Al{caJ@Qw_u%n)9I8AxXa!Pbml%X@z}C*N@q+X z^W{QGa0?9ygr?VL)-HQDkQ45Kqy@}OAN3U${m*=ew0MAKF6Vr(uihse15@|pL)OZ^ zn$-gS#M}v1RE3^ytP-etNGT5`N{?~#`fdUZ1VEn6zxwrWpRpy1Y+90o-hag=$-!CJ zTJ}~I{OZ^}oVFn+^B|YJ{|q&IKfWbev5TTtTf(`gtnKB{qmKm8X&62jxcR9N1`ai?^gLThNjf~Kd z22q3--$P#m<0Ci;&U%F-q)WR}6mw7{^rK0?HS8*s`mc&_qsX{u{gc zFvI3oUI$|(D)i0+Z1Iqw0-RT86iv6g(_Pq(W%tv>NGY7f>4t^glIcwLe}5N=6()@+ zXs;Zb-O?0Gp&kL&t19){M;zdvjEmoAR9KJ?_Z61u3h)lr$)Y*!HUt~~JHt{+mUhcU zV6e|P2kLe>IW-gnnnZulfTMT8u|S&@DH?S$L*-HSVu4%!ti~M36|uF`YiRF?i^I%D zkcf{Z1JbQP;+m%Cnhf|*H<$I^rFpdOuG5WW{rlg1N(LWe?|T!N*I4gw^tWfB)}ial zIfAMV^QxmGl-MC7@TKPm5EoCu4NQ_akZj&HV=&6rcfbBJlr^Nwrd`~EVi__tS+U3$ zgR=hX>x8#O7oY6f89KnE{=AZc0j3#@ZpL*aOa6sz-?9;9-P)A6ha8tC>DL9Cle8_h zC*ZVb_?%4CXF}O@(+ovY^C}rAd96)`^Tb?vEY=v7ZRF7Jv}t&sG%HbDs4&k(AeQhx zb`Bb=`jL_um)w%L3Ss`Tsli;rvV@mvu#}?~c1=cHSm%CVT$p##vKz@6+SJa>q5y|-9ah9#RE z*0KgtzThH}NZ*0t8lEa56~{VtA(G1e&oUy)U>Yf5jUE(%vKksX7{a2Z3X_S8c{1Xx zHqnN!ck}$v56^1eEXdK@#$97lvK#ElK8q>rG7iI2{191}w zn`+FccDWBFN^&_oY(xRuvzx(N*|+h%7U0idd`lrBlay27Zt0_&;U1sbd|*q9U^^dOW;Ms&gZ z2ya5DjtHSU>kn=b?z6XCbort3jFl@K>V|%86;$<_2QY$7qHro@LcgGZ(k`j)`!%zn z#h{UPIJrwzF$nnQ!i5(F5)i(~uUuiXb;J8T^(lUjmHxoV)KPLI~wZOH-LQ=DMmadTUqkfgVN~d;`jZ zBynhf{dZ>FXqd#q*m_zURX!dfB|?6*&G>ujK&C;)x*0IdropsNC^H`Hwa%@~jl7S@VYv!MH6j5WVNb$YHBoesbU>6u0(|cMntuYkiBQkGt?1h3 z4l?is5wnS_*5>fwFOiT#x!K|+2#g^xbh{|>4iM_eF|1U$KhtJB>x_vmhAh9XpyezV z)`R_^AAt|IpNAM894--K_TNLkV^5wuiU9l^`SSjj&&SXWqpO!%PQ@vAl2YAUhYdHX zBr9kzO}zgeh9!7ReBq&aS13g){yvW3`%nT$Wi49bL&&B$yu;zj|D*dCcjw*kSdh_5 zQtvLLvF&#Vk>EC1HIf;PJZrG}bOKSm=B;FzeV3352FIAoJA)3VU;{vkz}6v`);^WG zzBh1m1QO7pf1JC$aT&|Is+`J`31$fRscUeP?zX~Cn< z@GGdX0kFVH1Rv%;|tHGKL?rcciz?tw}gFuJXna=HBx?+(q)#83z43h1?k$K zUObRWOG8xqxkmPgP9E>CGatV_$YroKdQmr~M7Z<_-Q5qd)*+eziVZ%uAK3^D>c$C6 zEh0>)zjv#q^GN)**`zup0q5_YJCq!~Av~Z^+M>F{Ln#vJ`|x&c?fwQODZId7 zZ;T?7bA7WA-nopei@NneCSa#lQpXGZb|Q=FHG!0bR)r^zy`6-p+!70d(!=6tA@(?M z(D1r(jb73%*?&6<+NUDS3i27-eJfysKHOPtb$zvjH;SOz#hN(UQ5F5eXBI;UM0w-} zwyG#hVk&X{zKlON!Q3QsQHxTW%_F}YJFmzBCpQ>0X?Zbb54x|^;U>kM;6UMJGV#BX zM6Prp-=%eIJxt17QWR&tMOfOAUMfPc0c4rd+jkyAs>exHnHHP2{kp+i11U`W-T!^` zaS$*Ju_t}7+Fr-dWd`WYhQ>}r*$SZk>^w#R86v7<=~0#|I1P^wn};z@wdpUHvnx>z z5^oTvY6fa`($f7t-XBsa3oX95d9-+ZJ3r8UmKs_!Xz+5H|Kru0=y~_;VIxtNL{tO= z25gi)(e{cNHAyf(DmbaKsuQWA8PALq;Mp4Cu#su@OL^pYYbXg6zc~Z<%zs=<6V4x@ z+zC?$=(jhf-!D!Q2Fy;oDup5wefI@>*m58Yu=*_0+#&t)>TnY_aLo`5H6u&hEN7Ys zxab&|Fdg2-)Vm}(sjIm$ZdC>-5;UbHO6G0z8c#ZO;?q01nd=>HP^5AgeNhBhOF&d1 z0u|k!^A!ssm#k&T=t)mrSyK?OgQTW*xWfc|SgZq5B%d`>%zq1JI}`htDCREZ%96t{ zkhIHuBcmAtZkN7y4NILs^{Tl5iNiBg+I~_SZ{5p3EhwETs3JvOqS&fA4Rl6~&Sp0m z$vYAKbmza(3td{G>#kIZ#{~?n<7Y$f`@GR0z4!;L^lDD=fP;lEH#&spw-Ht+mCx*>#1Zv(XFiw&`SeQA_Oy2aS) zLEIc%@av4~Ku;J)B-yw9LXZz%KsX+UGYpTtN}*9>QelYw`8Vct-eWz=t!O*a(=L)W zZkZ{;oX_-^1m!*eIAJWtvt(eQ1!*$s!!=4v&A&NkC^J~i2S}ISvTC@$OTxbuC1042YY5WObe7!5sxuZN zIO*M*5Nd$3wb`<|Dq3Qz{u%4zzXZEUd-+5Ty(IFyjq{mqsMRhh-@QvPHF_TA6-J2D zCa^)Jp z%3|z1Bnu!>(hnIVU`M~9eyy}}*!3q$2!*Xfajb)8qRWNj37^Y#3H`XPyopL-Ocrmb z(&N_O{$5CxpPE?7Lj|Uqxq7HV>!vwxPozNp;~1xDvFN&;Cv0nk(W#c6G1TqN;J=mf zvgBpZP*>T?cBRqb`GQ?9MwPcIt4MMMbXm50a}V-OXFV<{*5aV! zV>1yCL?^9j4{{j9+a5Hdk7%{yN}gE5U@THGSo!QXZ4!AQpB&<<6a+0^QU}k-3vd^GhMCbM+w>HJewY zC*)C-q+uLWImGx+dU)H0Xmvex%RnzkG8>+suvNYVrJLz(3o1lzDE}5T9*Ao3alKg1 zwv`O}>ZV*%zm_-iT!n#1CDG*53V4S{@aii8upwIn_yJOax|vU;SdQMWQJo@NiBHg2 z4&*sW79_$%OP%Fq-M-ENqyVsQ_`!XfYdxIgy9Vj z5z7Nh6dr+T0nsp;TBzH(Y^Ce4kjP+Z6KYAuYjUhv;S;;VTVOjCNI55rsLq~=q;{6k z@8s7>7QaYLLNnR#Qef*}4K|D;#`5V5TkCai%mHChVAEmyc2VPX%3?`2$+@FOM@F!w z2SUsP$GWqf^6+$$K4BSyS8edPSUQE*wQ@J4*#7Wqh<#F)T3Sx{`2OW65?=(rU zbD;+jpwN#N`uz^q0?b zZ1uBwr`icGyRlBdjTJL=jPxU0}i@N*0-)Z)_&4Ec8=Meo2KYAVVnd{Wi}o3lMT znN@HQgZ7abi6(1;D9h=u7qGQhXNVPjd=>#D=@6>IyEdXjGQ2p9Q)vPMNX56Xiyu(~ ztlySop)7uHU)UP}@`;Y@MsQ zZvP5BsqK6a$C_MVt>(Nef-{#5IPPd!TrVt*y$&m=_%T&P6l!cL`SQR3}1T(1N!5qXkIyT#`gk;G}pya zPR2c11Aa%7I&I1Df0FKr=*}1goLK(yL^$aA^6nq>E>jTDk%vh4uL(=Q)T?!t4{(-G z0l;~d!sBo$LN0DIHJ2hDDOiLaNP)U-5l8(mV&p))MpnMYtWxg9(z|iSgi3QJbsM8( zRVEtHrFyrk!8CbxY17eVQ%BeyGCs)QsF1N4~BTaWf`7lv%K|qW6`}t z7bPqL?zjc8=Z8Kat%5~{Q_nD?+cskL7}gp8XC zWnK$Gk{Y`!&xY7Je5wo@`~}5Y4blH5DTKWwco3V&atrz{Rp+=0l8e|RH9~-WWWLvG zzr3^#Bu-5&^zy>Vl@6-iJ3Oiwk7kHf_TnmIKX%jzYtk|#X&Mq_+I9$)QL7}w16hzy zR>AY*h})TQI6LmTDI>{K3q}0Bn{1tA0A)#ZSc$^!2(C&t`+W|6sR%o zaE3IsM@DwE*>GB8rif+!^?#rK$GRm_tL#V~-e~MT*@4l2OXvOYoueCt=)gs|z9Y=G zqnf5qz|=|14^>%}B2aCstkGiM_#}j>YHD6&OjLVumdyN^xI44q55ZY#t9V)Odui83?Z`f&kbR1 zzu*^Y4lu`9iaf-Q%W>$@N-A!@0A(FPbnf@_Qxwaorxb0PIy9eFmCL~5@^kw{$j=Av zj;JcZ&J84OMUVaaGWDgOZd37CVaJLX)JrfGo=u;k z3^(A&5W>MtGq8enLgUC~{Xfppx)czS9VnbeqgtiU;N8t%^JMFh%x56@FX~*<0;f^b{aW_RGZ5@y5ti2t(*YyT@0{AJxMX(XF`Xg) zI3W^f^wxy^h!EoCYmWmkXCvKQ4S*jCgdN|%9tsU?)W%9DpT}@<*Mu*Anfl!{n>JWI z9;<8bxt@}#UXCM1Qhf!DLDZxhZTxg4A^wpMj_;FL*ijwkNb}e#tn7c@_3Q|adQJCXlU2+1C zaLPux0J$|}MG#=i-a1W3UP`HDO9O$n7T9l9~iKvd3U3_)Ta1ab(hY{F|3keHqHh*o=LQWskvm35*P`ravrO@1ww008Y zzI zEO`Ao1t~y>>Erl`t%44^6bq{`vcS2g_^^<&uq{@NJ^>FcIO{~qG@3Ljq632h#k$>b z2hG%epbUVsiQ31H|FgZ~i0>EF!H)7hPJMP@+?#xq6m*RGVlK#x*Kcl$wdoAJA=y+% zO)Dto8-OT}&j=F?_=CuYVWwWO30^6yAdu3TpztGa?h%|B(516(UU{)E*5tN-TgxcJ zY6yrzGlYE_zpfC*RF&+Km!J`@EnxUl)>G^dIV@<1%;&l8^nKx`D+Y$%*C(O{C)> zrraNhU?BA&QMHktl347?{#e?Q!OSl!o_3{3o@w9uSk9f>V~aNbtP3rL@jc&{af18B z6Wwbio|1z|?>5WFBxlNogCZ|eD-Kc^R0E!X_kX5SZF00VILRV#O*ap{)P9F0PDoO%?^-c>P8+N%N;2f6pwJcvEf z(3R@O%Bv|V4r@EA&2RR%bA4EaWyYT-(&T&uZ(=c0Af0SrD<9S$LAo^rjW4$DA#Y!x zcPT=cxC-+Z2{S_$xH;OGASN9JEnr;C4RLzjl8->AYUvf6E=1t-(8-47##3C{A9|?{*~ay4EY{<)S@I*VZDbdI_wvv(onv0Aq3tkFfMMrM zPEhPS0}Kg{aR3jTd#bSbqyxS48Yd<`&?*ArIT;~%^Zgy+#L8qTpOM0pom;D-xb~i-Eq3{ApnL8 zugHkOXs(()_bN=Y)blm*j-JZ^WHD$>^g+KJSJQxes=br(VbU~6E;V$C0pC6qo|~Fk zFaSzwSr&IweAZ3-(KMvtDrv62dg_5xk}il|s*J`+HgcQ}1Xe^t>B6?NyuA5nu7 zZb&N)=d`qvu${-)XZJ4s;D1NNlhD;js zu3I2=H4gEE$&@cR3#~1~2dejieyN<5M$67w;*KEyQyjd@#a^}kytc7u-@JTfZC8|j z_Batw6(JSA_>6mNMMT~I1uNl;E(P>ET~=pI5Sl}nh|Uh80gbGMHM#^p_(VX+pG4=O z2Dn@fF{J?~f>ZkfKmRb(-8^R|er~~;Zfv;{{Zca?+Oo_K zYg%vV!W{V{#tCZjE2nyaE0bM*WTOB@w+kGQ$2$ETy$u{Hye_PQ%nZyU67Jnn=oc28 zW~Rzi%EPaD9s!|COK9c~JkHu2jh#>H$Kp~Z{t_xHWLku|`N$c!KoJTKs-VVed%9=F zHSi@e%Rbv`bhv?a?u(WRHiI*wYNQ&CMs?&?qL%RQ6HHs0IL}i$c*)ty%ljCbBF*qE z&N27e{gjf|sSaVst*uVpw=W!#%sfUDGi5O4v>20RjijU9a zzv^6{y%&P%UOdi>Z@CdlEc#>?ZedY(WL?!~_H%<`-Gc1?QV#msDPhllJFq!<$>YjX zU~8(xJwmwLA@V?w;I)(t0-Ob^%1`anSLGN;Qd6?+iAJtN!vt?WZw0=C@d3-y;rRH} zvZOrSpR@@Ksf?Y&;br=&^%AZ8@YHSXu|A9sgvwtISmJ8F^~pw20Ufj%y?lYnSrdn5 zSwX1F)h5=Ms#Y4A7elPbIjJLbt#iii&UUgwUHwDsYT^sU9P zmu|q6uP3r*^7`yOi_flljzFbf`MFCs;ro(4&1&rd@|RY_2Fz)C-Q_VD!(_>RLQ{OV zIvx!0-DMg3Sng&P*R^<0v@B&|#Xn3kBTjfwi?r2 zCzdf4%RVD_4ABzccQv33?OGr(zz5BI$RbZOrG9;*P@1+39WYB1pc*Hw0HhotT6^kV z8izvqQRjym^)%dUAUZ(XAD(@zAhC2twv@&1kF#jZWmYv*Zt0KNSF$#GPrhJOicUyB z(N=kb$+*#H85g}HP?kn{wkWV}nD~K?0s>sLma2QtH7HoZDU+IsRC#;-UG!-9PXg5m zI*jLY55oE{?gkag?#14mPk^Laj@YZxvld4V)&IAYlttpk?={XuVZOCeXk;rw%&Veh zR-gw*v8A5BS6_SCtN1LkPXW=l$C}3MI;Tc&&^=KrK8qPBAkr*Uca26wzc}PoZJNM=_@Mgf6rC5=j<?8l71AXAVg;w7U2N$=9xIAAd9L zSscJ7Xudfpti?Y9G+INzpaXL40idp!7eKyM^JmxCxBZFhI`5hg+PMA^4?*tPG{qZI zVNS~*<_tN_;K!?5^E@`pusn-IU(Om|8iyK1B~2W`_3f_OXvCC@_O~ODqK0`3EK^mB z8dkr%I1zcwF4?Eo|6#w*L!MtOOVKr)-?>r1XCF_4O~JS^4qsBj85=yR7&MyvL?FQf zl2_|*Hi@0 z;#t@M;dw$;hY%xK@-ASIaUs#>Me)~isNPUZono6KMcdZ*$Wt8d$P|l!cS1^~H9k?- zMcLv$I{d7*i8h;}n{N2es1PVj)Bxx{8ri@6IZja@viLW6t?J>taQvf{JRveIh2!zd zE*RY`7K(;+!L`^vV8bZ~Qcp@z`cDl=uzt*xB?bVWkbZ=VPW^q!&$tMR@&13nnKLh? zU|2rkd$Z>`vHX0k(NYjr6r1<;a$Ibda_V>B1bk-Qyr6%wh&|eV4teqG4sX=?E+R{u z3JNyFuqTX_DmvBo2#sCM7_}aOFo23u) zVs@WErhh)ERPb7n@~?rLtY=a)Eo}C*mVXm&eaYr7MaRA|Mukai$$Jb#poOJsnm(ui z>Xjs@$5v&9!(gqWSc9-zZnvQ+wEJVY0PF%eh^SUU&yA5~@A>CF#du6(y3l1+qE@kp{xHIET zdG`&qG{7fqNwJv=wW?RDlu!Y|brXje&@2?pV!3hK zQbOcH9*gy|X*?MK?yc52y@k~pzQED}W9ofzNhRbKM^Rv@e;3d*TX9jsK!OoS60G!O zNhBW?&&l~`fPqalQw1`G=t1Fiu9=tg86VC8rikLaP7S#nCZU@p!kXU!XSO-YALYo2 zVrSmdY|rL;gt=<_^`Y`XWJxJn>XXs~tloWSC?BMfVPO(k=}xeuAyf~=;VbEYOwx;; z0{QlUqG=cVoe4Vu89YeI~%fWp(4nIlui68 z+i_eRVe~F=7-;Z@tVuT1_Z{fy;X9(4g>+3KS`++*uGlqebew66qo%jbMww$5Pt6*M+jT{(e@<)A zf(shdNGxH694Zi$TUvNQ|<=R0p*u12Lv*oqUqxASycv8SI z0T?$4lRN;HQ&P~_Q2iY>KD?$jH=g`a2f_3dfl2I*V@pts@31 zNQMl9-2pzDlTv1M8y7}@6e45TBWr6?Y$bD9*$H5cfX zSUDLKRStTcZ1;dte{BMlZcOqo`0VDv>bYq}Hh-KvtqudyKq@V>MQ@iLij#c=< ACIA2c literal 0 HcmV?d00001 diff --git a/lfdb2/write.php b/lfdb2/write.php new file mode 100644 index 00000000..25cdbbdb --- /dev/null +++ b/lfdb2/write.php @@ -0,0 +1,69 @@ +>$__factor; + $r = $big & $__right; + + $unpacked = str_pad(pack($__format, $l, $r), 8, '0', STR_PAD_LEFT); + //print 'big=' . $big . ',unpacked('.strlen($unpacked) . ')='.md5($unpacked).PHP_EOL; + + $encoded .= $unpacked; +} // END - for + +print 'Hash(' . strlen($encoded) . ')=' . md5($encoded) . PHP_EOL; +print 'Encoded ' . strlen($str) . ' bytes into ' . strlen($encoded) . ' bytes ...' . PHP_EOL; + +file_put_contents('test.data.bin' . ($__factor * 2), $encoded); + +print 'File size is: ' . filesize('test.data.bin' . ($__factor * 2)) . ' bytes.' . PHP_EOL; + +// [EOF] +?> diff --git a/lint.sh b/lint.sh new file mode 100755 index 00000000..00c4a2c5 --- /dev/null +++ b/lint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "$0: Analysing PHP scripts for syntax errors (lint) ..." +LINT=`find -type f -name "*.php" -exec php -l -f {} 2>&1 \; | grep -v "No syntax errors detected in"` + +if test "${LINT}" != ""; then + echo "${LINT}" +else + echo "$0: No syntax errors found." +fi diff --git a/mindmaps/Local File Database - NG.mm b/mindmaps/Local File Database - NG.mm new file mode 100644 index 00000000..55d1a8a9 --- /dev/null +++ b/mindmaps/Local File Database - NG.mm @@ -0,0 +1,1080 @@ + + + + + + + + +

+ Local File Database - NG +

+

+ Revision: 1 +

+

+ Short name: LFDB2 +

+

+ Work in progress! +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patch.sh b/patch.sh new file mode 100755 index 00000000..5dbfe7db --- /dev/null +++ b/patch.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +if test "$1" = ""; then + echo "Usage: $0 " + exit +fi + +LIST=`find ??*/trunk/ -maxdepth 0 -type d | sort --unique` + +for entry in ${LIST}; do + echo "$0: Patching in ${entry} ..." + cd "${entry}" + patch -p0 < "../../$1" + cd - +done diff --git a/patch_core.sh b/patch_core.sh new file mode 100755 index 00000000..6d93d1fc --- /dev/null +++ b/patch_core.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +svn diff inc/ > ../../core/trunk/i || exit 1 +cd ../../core/trunk/ || exit 1 +svn up || exit 1 +sh ../contrib/patch_i.sh "$1" || exit 1 +cd - +svn up inc/ diff --git a/patch_i.sh b/patch_i.sh new file mode 100755 index 00000000..6690ae0d --- /dev/null +++ b/patch_i.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +patch -p0 < i || exit 10 +if test "$1" = ""; then + svn commit || exit 10 +else + svn commit -m "$1" || exit 10 +fi +rm i diff --git a/prop-set.sh b/prop-set.sh new file mode 100755 index 00000000..1df2b4ca --- /dev/null +++ b/prop-set.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +find -type f -name "*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \; +find -type f -name "*-" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \; +find -type f -name "*_" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \; +find -type f -name "_*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \; +find -type f -name "*.php" -exec svn propset svn:mime-type "text/plain" {} \; +find -type f -name "*-" -exec svn propset svn:mime-type "text/plain" {} \; +find -type f -name "*_" -exec svn propset svn:mime-type "text/plain" {} \; +find -type f -name "_*.php" -exec svn propset svn:mime-type "text/plain" {} \; +find -type f -name "*.jpg" -exec svn propset svn:mime-type "image/jpeg" {} \; +find -type f -name "*.png" -exec svn propset svn:mime-type "image/png" {} \; +find -type f -name "*.gif" -exec svn propset svn:mime-type "image/gif" {} \; +find -type f -name "*.txt" -exec svn propset svn:mime-type "text/plain" {} \; +find -type f -name "*.tpl" -exec svn propset svn:mime-type "text/plain" {} \; diff --git a/remove-deprecated.sh b/remove-deprecated.sh new file mode 100755 index 00000000..cd8d9f05 --- /dev/null +++ b/remove-deprecated.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +if ! test -e "svn-externals.txt"; then + echo "$0: Please execute this script from root directory." + exit 1 +fi + +echo "$0: Searching for deprecated PHP scripts ..." +LIST1=`find -type f -name "*.php" -size 24c -exec grep -H "@DEPRECATED" {} \;` + +LIST="${LIST1} ${LIST2}" + +if test "${LIST}" != " "; then + echo "${LIST}" | cut -d ":" -f 1 | xargs svn --force del + sh ./todo-builder.sh +fi diff --git a/todo-all.sh b/todo-all.sh new file mode 100755 index 00000000..f3a806af --- /dev/null +++ b/todo-all.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +echo "$0: Reading projects..." +LIST=`find -maxdepth 1 -type d -name "??*" | sort --unique` +SVN_DIRS="branches tags trunk" + +for repos in $LIST; do + for svn_dir in $SVN_DIRS; do + if test -e "$repos/$svn_dir/todo-builder.sh"; then + echo "$0: Updating TODOs.txt in $repos/$svn_dir" + cd "$repos/$svn_dir/" + sh ./todo-builder.sh + svn add docs/TODOs.txt >/dev/null 2>&1 + cd - >/dev/null + fi + done +done -- 2.39.5