From 8529ebc7815d885cd803de108332013f1ce8de6d Mon Sep 17 00:00:00 2001 From: Peter <87410183+plybrd@users.noreply.github.com> Date: Fri, 16 Jul 2021 15:40:56 +0200 Subject: [PATCH 01/12] add function random(uint8_t *buffer, size_t size) --- src/LoRa.cpp | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/LoRa.h | 3 +++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 210a589..7d9fde3 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -62,6 +62,12 @@ #define MAX_PKT_LENGTH 255 +// Setup random number generation +#define RNDM_SIGNAL_BANDWIDTH 0x70 // 125E3 +#define RNDM_CODING_RATE 0x02 // 4/5 +#define RNDM_HEADER_MODE 0x00 // explicit heade mode +#define RNDM_SPREADING_FACTOR 0x70 // 7 + #if (ESP8266 || ESP32) #define ISR_PREFIX ICACHE_RAM_ATTR #else @@ -643,9 +649,68 @@ void LoRaClass::setGain(uint8_t gain) } } +void LoRaClass::random0(uint8_t *buffer, size_t size){ + for(size_t i=size; i>0; i--){ + uint8_t nbr; + for (uint8_t j = 0; j < 8; j++) { + nbr = nbr << 1; + nbr += readRegister(REG_RSSI_WIDEBAND) & 0x1; + //nbr = nbr << 1; // At the end this would shift the first random + // bit out! nbr would be always an even number. + } + *buffer++=nbr; + } +} + +//#define RANDOMUSEAPI +void LoRaClass::random(uint8_t *buffer, size_t size){ + // Saving current state + uint8_t crntOpMode=readRegister(REG_OP_MODE); + +#ifdef RANDOMUSEAPI + long crntBW=getSignalBandwidth(); + uint8_t crntCR=((readRegister(REG_MODEM_CONFIG_1)>> 1) & 0b111) + 4; // getCodingRate() + int crntIHM=_implicitHeaderMode; + uint8_t crntSF=getSpreadingFactor(); + + // Setup for random number generation + writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS); + setSignalBandwidth(125E3); + setCodingRate4(5); + if (_implicitHeaderMode) + explicitHeaderMode(); + setSpreadingFactor(7); +#else + uint8_t crntModemConfig1=readRegister(REG_MODEM_CONFIG_1); + uint8_t crntModemConfig2=readRegister(REG_MODEM_CONFIG_2); + + // Setup for random number generation + writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS); + writeRegister(REG_MODEM_CONFIG_1,RNDM_SIGNAL_BANDWIDTH|RNDM_CODING_RATE|RNDM_HEADER_MODE); + writeRegister(REG_MODEM_CONFIG_2,RNDM_SPREADING_FACTOR); +#endif + + random0(buffer, size); + + // Resetting crnt state + writeRegister(REG_OP_MODE, crntOpMode); +#ifdef RANDOMUSEAPI + setSignalBandwidth(crntBW); + setCodingRate4(crntCR); + if (crntIHM) + implicitHeaderMode(); + setSpreadingFactor(crntSF); +#else + writeRegister(REG_MODEM_CONFIG_1, crntModemConfig1); + writeRegister(REG_MODEM_CONFIG_2, crntModemConfig2); +#endif +} + byte LoRaClass::random() { - return readRegister(REG_RSSI_WIDEBAND); + byte nbr; + random(&nbr, 1); + return nbr; } void LoRaClass::setPins(int ss, int reset, int dio0) diff --git a/src/LoRa.h b/src/LoRa.h index b312db5..180178c 100644 --- a/src/LoRa.h +++ b/src/LoRa.h @@ -87,6 +87,7 @@ class LoRaClass : public Stream { void noCrc() { disableCrc(); } byte random(); + void random(uint8_t *buffer, size_t size); void setPins(int ss = LORA_DEFAULT_SS_PIN, int reset = LORA_DEFAULT_RESET_PIN, int dio0 = LORA_DEFAULT_DIO0_PIN); void setSPI(SPIClass& spi); @@ -112,6 +113,8 @@ class LoRaClass : public Stream { static void onDio0Rise(); + void random0(uint8_t *buffer, size_t size); + private: SPISettings _spiSettings; SPIClass* _spi; From a0a0f06b9b9b97ab132984bba3c253e554fa8f4f Mon Sep 17 00:00:00 2001 From: Peter <87410183+plybrd@users.noreply.github.com> Date: Sun, 18 Jul 2021 09:53:20 +0200 Subject: [PATCH 02/12] add example LoRaRandom.ino --- examples/LoRaRandom/LoRaRandom.ino | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 examples/LoRaRandom/LoRaRandom.ino diff --git a/examples/LoRaRandom/LoRaRandom.ino b/examples/LoRaRandom/LoRaRandom.ino new file mode 100644 index 0000000..a316c6e --- /dev/null +++ b/examples/LoRaRandom/LoRaRandom.ino @@ -0,0 +1,37 @@ +#include +#include + +#define LRFRQNCY 866E6 + +void setup() { + Serial.begin(9600); + while (!Serial); + Serial.println("Start LoRaRandom"); + + if (!LoRa.begin(LRFRQNCY)) { + Serial.println("Starting LoRa failed!"); + while(1); + } + Serial.println("LoRa init succeeded."); +} + +#define NRANDOM 1024 + +void loop() { + uint8_t buffer[NRANDOM]; + + LoRa.random(buffer, NRANDOM); + + // Just print them out + for(size_t i=0; i Date: Tue, 3 Aug 2021 16:54:43 +0200 Subject: [PATCH 03/12] random(): - Added basic von Neumann extractor - Improved setup - waits until current package (if any) is send - disables all interrupts rssi_wideband(): - Function which returns the RSSI wideband messurement --- doc-random/random-asAN1200.24-Neumann.png | Bin 0 -> 74884 bytes doc-random/random-asAN1200.24-Neumann.svg | 1705 +++++++++++++++++++ doc-random/random-asAN1200.24.png | Bin 0 -> 81462 bytes doc-random/random-asAN1200.24.svg | 1705 +++++++++++++++++++ doc-random/random-widebandRSSI.png | Bin 0 -> 47465 bytes doc-random/random-widebandRSSI.svg | 1832 +++++++++++++++++++++ src/LoRa.cpp | 72 +- src/LoRa.h | 1 + 8 files changed, 5278 insertions(+), 37 deletions(-) create mode 100644 doc-random/random-asAN1200.24-Neumann.png create mode 100644 doc-random/random-asAN1200.24-Neumann.svg create mode 100644 doc-random/random-asAN1200.24.png create mode 100644 doc-random/random-asAN1200.24.svg create mode 100644 doc-random/random-widebandRSSI.png create mode 100644 doc-random/random-widebandRSSI.svg diff --git a/doc-random/random-asAN1200.24-Neumann.png b/doc-random/random-asAN1200.24-Neumann.png new file mode 100644 index 0000000000000000000000000000000000000000..bfec995748e33136bdc2c1d25b6050934f581a93 GIT binary patch literal 74884 zcmd431yoh-yDy50x-P_P%GIea5|KjCRV$OFy@ALd>67o<{`WhA~76t~!HCY)66%33E zLKqn5#S!P>U&P`AN#Ms72N^AA3=Evl=>N{eG2`6Az@WmAl@L>NPhKAP(7j=P%D2vN z8UDkELfR5|_J!r;>UWaFL$}b@x0%=k4>Jn_ zNoqJE42*TdOx!0I|2+Lz;-7U5{mc;Y^#3|UCib6XiH_d1=AW7cRm zTCLp^62vgPFV=hMQfsyIoCVj2;94E$(9LR{J9qA!oN?3!nPi)bTb65+M(|kn(s`M{ zoBfWbDL0lL6{ugle7Vo!LrKHoR}nEODJd5huBcX3MuO1_+e}8R)@zrlqNEs)~m+U|AuZj@`R3x z>Sw%xuj7a`n_i8}?{5i;M|{g&dWY$b2D{Y${R~YP&d2bu^X;yTGQ>UDTN&jYy6MP7 z5fz`9c$j3iP>}w$qeCfGXxRC1etw>eZJoUqV}q^3)PzVtQ=}{hQvoZy53N@`gxo*o{?1M&g8K z=<4ZNTUo7R!ev}sDrrWl;h z>O~oh`FVMk8^2msS65F@PuJ@AC{n}d+AAl0N1K~7N2N#mfBdMbsrfZ17tg9!`($N% zp|82Q+1S{)-)cvXN6pJi5ILXXHbKH^hAkUIAX%hUW;R~q8p#<+!uk8-vkUb+r;Ggs z8#F^UJkRbsEdIDd=C{#86n|GoO8G}uis1CGUk>kzizB5nA3b`sqfNkL^&{8+GVaJE zoOpqt+iJ3)8>>jxoW;TBtS+ktQyddP=&xT!W9LIcLY_T)rctchv$O*zvAMmyy|Xi3 z<(S!TmCb0iw>lmrygQWts9@jQ*TQ1H+TYB`4Ybq zW=UnHxCe{`BQ`uaZ*HnE5+o!fz`@W&Tfk9IOiaLKSZh4UHMMWA?}@Vz1_cIE2)H25T;Yp3 z&AW6fY_v>FOf)q$y9cVA<5ykBI}^D(CYl?eA%)yv_=Q7-AM#{nWOizbI<_5$jL!jf z^SgKK(J~)=PdtSjEiLcpYf(^8u+^<2H8kRVzPL^LxWPfuN`=4UT`n1@8(h?4c~xrM z>bu@_nLzS7=5->Xz28apyJJE7hli`MdEmuOO-%%nw!`lw(;u!M9N#nkGF15>w*7%LZlyk}WMQCmT_IT%-~E-+MNuTQ{68Vq&U2dPIU9 zc(65hX4OlGhxdJGNJjaGbxHm1@mBYwsrZzA)yT-mix)3wr6V6U-nOKbhdWC*v07?em%^o{+hZBBRq}>yp0JGB@N~>>=A`)^22uLHV$FlVn(r_!$Hv6uo{cIIU4SC*ISybm~nn)3<^m(|~wl&pOYxsjBV zq@$xl=`j-xjV&pI5kA>%O}}2>o{JQk2)}t3S!jmm%G_?&%F$Y*o12@c+bWqD9-Ihl z&B(OpB{kOe_Bo89R0sou$uje9e9Y_DuWx+0W&gVKxAR=r70mNq*6hULTXWs21Uu;K zU~WB@F1J^{diY>u-sP}^t#J%y>*kCs)Ue;_@!Plbb-s?K4<0=5Jv}fFYf&*UpuBOT z%y~|6(QiRSF>`5YNs{Ke-H<_%he1E{ojcdVS_VrD{PxD(jE#)e*GZS}lMCd5T$dBNXspis+tpfH^gJ#b#h(D7aHg0={YqXipciG_rOB$i&G z#&aisS|oQc%XXs9gVJ}O8b`m;m)u+tVA~UC=dxiNzSAG7N>f=Y01;C7o!{1flnf(W znW#U4dCZZ(A}Ba|kHKMVYNE=~zjbs!pOq%&8%$Pr*{|nhLoh_ROVGlNl66tkqY{kTwE_RaxY#b zv>Ex(E+Qu*BLe`TJA*NlBdN3Rt%4U!oeiBBItHcGT)KR@wyNq|BDY+&in33kX=sMG zkB{H})MYa7&2|RIGgvuvo7YbtZ=fP#)!pwBTpOD7^z?ic9}lgjwJ%3$O+8|~)-8%s zl%lahlZA`)+8pl_m+>W90U?|wqjarRg4@9%&6CLfxCE~@~fSj-G8 zC<>Y0V$^h_ZvR(UmCou!y%#_}K8v#9c^A*hfhzI%RqOGcxDT#N)R9X>-ShJ>LHIiE zu(6r56YoBG&0&i5PZ?%1E@noFU|qQa#mH+v@i{tGcC_(yr$m30hmmm}a20{1Y<4ef z2L97LoiuMaW5={~#{Bg3bJQqn_n=QrFD?y!IA>l^QgXJCleQkGvh}-@7V!(3t2n}E ze=115z;&$3@j-U)292jpOXy8lFM}$Fbiiy-J8KSC)O>vEby-_WR@fGomg?*4NwB3V z-CbQ>p`eG(W@cy0D=L`czHV>3ct>*c^H=BP<&8?KX=vya4Fm@xga%;_4)*js6TQvO zj;F+F^f}nT77H-f@$=>>ms{qZL4oge>fB4i!sNOu7CWE^_(7Y20zYTa_HAzKIibact088{_Ta|3M)~%$nau1Nv+ItZMHC)HzjIuJ-oW45* zSjRk6R3Ak!K6P|lZT#s}jZA;hIz2qOYr|EodkT~MWn5fdzm-5rgZF{ck5=tft*Ysz z)Z5ceBJjCh{D^dbiiwGdZ{EB~y>Ya^|C30bKDNckmHA=%Lz(Pe0D5!3f79Q-4KwBC z%a=1VGoM>qC#ze?be^_O?`SJ|?E%CC7=fUEPQ_z8LIC(Bz5|fkwM+iPHVw|AYu44v zF|n~_@89DggK)?_e23+Ct-&i&w2M;toy{yPEDXxa z_xw=boBS`M5o>(Mh4bgFtgK)z_E^|hTi0%B=a!UI+H>pc>lYUn@A9~@{B28JyZssl z*D*I{VwF5SJm5TCTwPZt8!4%0mX-hqPXNe47a^=f>)_!~bxn=kXhl&*1`PwlToP=V zR?*XEc)vE>&B{oW3@0@_y}Sm0{P;PzO9Vjc+O=!DYTXn7s8w?m>kmY^xw!!v3Lq_p z-#k9&X=>)GF zj)5Vm^LKL)?kL-?sOzHIlP4AN=*OUv=*b5d3ErNEI2K%_zD?5`DCA>TS8m?|l{|Fo zaZO+SI6CUppZ~~R>`=R-@vCF@w3EKyiK`bs%+pu~rB@xZl`uAgNWZkUQVKr#X2{M+ z5DG0qJP3!IhbQtD?`oH8)vevtBJ~2tRrjACpDiyh0}%Z2$0n!wo$@m zef>?}!tUhK&_Z8M$Jeinp-#@u#-*D3CCbXmqNn?`$lUz=MSueCUtuPhnwaGFTV?iG zG%iV~sl5br;OQwKh6n8YWUukeHf?{b+F46WOTD1qh9^zftD>f+=EH~WH_FI3-yINDTE9DD?OC5n*WTOP8%D%NgCb7elIN8R3hA}@qr3;x?9;;5Ab@@@2p;)o-;vy|5kL9Aryo?R53i>yrE)d zW`_OECMhO%u8V=keu9jMhzJkwDc;xi_5;`yct|=~k-afz1qFr6xD<4>F`p>o1guAm=y{>o74^ssr_NzvW6>IIXYOGUlCDzWWq zT3QG2uL{Y0*LO-^t-ZaUAa7Q#ZEbD6F$zVoH{peAK-%Bav$0Y+8AAsUIRlV|&(W?{ zk$RE37f`g?LR)WdZ%`d{b;*#7)YMZz&O;(1R`|#IOQ*-P_a^-sv$M17>)|~suvEZe zT?C+8;^N|>zPD2Pg)=Obr;QeAmoH97iGDFRD<~-N8W3ZOQ%n=_fr-%2&=4IRjY#jw zlm_%^J6ZvJ0^q-isp*u-D(}KT_K~(5THx9znu6CMDJKbg| z*H(y`neB+*@${(_Irzre4J>J_#~e4g8&%ShkGZwFbZ42X(`h6d_I zPR?AE=xLRCHwDmKQPD=X36CJE;I6K&czsWRfrp2Oq!C|uC%tb_fABuo1oS6M7n3a) z52_AYIwFmrr=!D+a%~}+h4SkLG3a=IgVXFA0vDI^P2eKW?XH?-d)UM6Qx2h_p|98s zx~3d}gn6MJ0>Tj&Z_ZWDv6ZHa_-uCsY=SumY z35S-eYx#-pBQdci7zWpoFrVCgWa;pAe*%{X#zUjA5!h{;2i_qPPJ3a;6JBcvhle2f zD86QYyt_QSG*EO@6hV)NfbkI%6Z6@~(Z;3_PCixG>mjA}fgRS2Q?-5F23q)P$o2jb zP6BND6qEo78fAC)eIT;XOIeS@*cx86n@mkjx%nxT@9(?U>x-IxB|trdwydE+d!P?`i2Kopveu~VWCf5di1l{oteh5I}xu#(!IzMeO?ZCwO>pgjcPQZ^)ocnD2^K({_8 zdNzCynD_IGSLqcJe~gXQnRO<@GFq2wqh6>nDagx9AYjI=05iX!?D6NL7;b&Y>g?;| z1b`wSFmg{5Na^q2>JJ}2#j~=p*2xeFchFfrvDgB{^A2WW)wx=*shJ|p_Lkj(lr_^)L)RnO^bpWUpza|WGcqSRQr@>7dZsU}N9C6<4~&jRf9$0-8o`R7L6toHk~OGg zTFS~j{rxRd4tPi)e8B1(lA=H-l9rPTOG`^LegWJu<50`vdxUyHHsb?2{A*7nDSW^G zP`se9!u98eFrMe{o1_tDt&!y7+?MF^En;O>HVh+J+@Pdx^DA`ez2)I8P^V7=i1hdW zfKeLRUO0y$_0SA?`Wq>V=B1kV?%e|^%hJ-)zJ3QNtGcoAG~kT2-_FA}6>uC6vPs(l zE+D91zIp|c>8rasmuhKnMJ=pyp1plS`u9g9Ts&V23es;`*C?sQ5mU7#3p*q^sa>?&HRyAa-y}cc`8x@SpRI+($C7GY zJ1s2|-;@_GzFRwy5)uOYb+f08xQbHEK);=sFLF*cXg#{3>62NRo}S(mA3OS=FKHvu zkMl^2$p)Vj`4Ngw=23r&Q^-4TI+}+*Hg9lgDv^g_eyNV9YVF@w94@@){oxYy(nHCJ zN?vQtifEk%<-6)_=M^gIf345oWukbvYdr!g$;my%y+9u9vR8SkIVuDJefsDFz+jm7 zJ3I#j6`uY)=L$NOW#8M779%&eJy^5y%F5}gCPUa0zc<`PL_`4G`|HT&Jp1cD;pTz@ z2>dG}BLj*EPI#1(;hpcvVNH!d+=Cr33T%MbzD^dt6`3QQnVDIxZTsK>*7IlRmh=&C z13H-fL|t`ZVK@~6RvyOg=g$(ThgMek?It6Djtw>5x$QnfcFt$r>eaQZ$b zChs8H4GTo@11SqG$QJJ#?jjpLk?c>C zmUhDcLWD>-IP1Zi4RhPNx+WU^M18SinhftFt^^>D8KPyf2A90LkjicR(q^m2cXpGO ze$UL@@4WH6}?klzVpnyEE$~W~x21(XMpk z&9gtJh~e%48rogmDt2aOYqa$6Yi$jhDWHh;(NCX{*(&_*H(ePtW#5Q9w&BdmO??lRk^l%_)R##^`}Pw zcG2D4bMemcE6|v(j`a5RX%uPSj_(LSPJz#~A!&?De>ATg_uw{R*pccF2l)}aaEd=` z`5cDl@^D#>d2;uhxv43CqsZP*kw^;i$URH{R!wwid~E-DPaS^3J~&Tj`{#)`#=o9? zbRY}H$dvw5LS%c6+w<(gy;A(d%QfiNy>S~X*30CVQBrDk^ly5RocwKi1F$j&2gjw# z7`NZA?LQh9`f|GOqGuty8tAj?YHB|Rp+_`oHv0PL>7_i#W@2Ve;xvy0@@Ht@f2sS= zF@JPuGAkpW#K&|5qyR&x_RoWXfnjaDcJGh&j`^|7c!oxX~imtP|L`?d>U;4Ojvejfq8B-;78 zK`+mq)aflkN&TazhdS=Tb)-OwA{E|tGB12()1Av7lP^X7*@cD(!%|H;*%-Qof7Oda z-Me=W^VD$c#*>ZtC@lSt{=8276YOI;{Py7Mw6F~aiuDAYf6LYaBwh~4r2M`Wxz7vay%7NhmweiQBhNKf$O=sx#_wzFtrbA{nFwhc&~u- z%N(bryc@A&=!jS}*+B{hrG(ph;9HugK|w!`*-DBj-$c$`0RioT{zX`|6xJhQ`~n0y;jG-eaZi2TuaZIPq=EMyd<({E$$!zbPt8c=)h=&)dVI{q-h6}|0Q2mx{31^)I#68)j;e&BVk zO*V?MvEfpiuoL4Uk?DA6KrFy1C9AwlJ}u0*()KMygr1uEoTw=?1H;LQi7J{e36bGabrrr22T;ad_k-ZIUbKvNEm5nENd3Xj)I1)O|Pym}OM`>`{dsEnz%BTle>28?1+w|K;-Sp}kDvP4za7ovH-HW~gIuEeZD!osSmsxY+4{V~PJ zgxuFb`2Z6>Dk1_zu!&kXHY8g424fCR>?T$K)cfxCwvg{J-ya|YaQ_obtdrwoG?f(E zxX^KL^6BL-XJ&u^>F|ZywD{2{w2 z(Yn&q@QWrIA?-N?V--kFvxl6 z!6a_Un&}U>6F&%hgK7t-_;l+vNXWzCcwoiQ$6lfSY{(9MuF`fCf-=BkUcmar#5~7C zs~p(a@^W&Vq!D0>gN6y0P8uN$@|J=3h9r~&Kx4=ZY7EPBRe(%sUAUH zuirhl)%TxfecX|YzzJLe(1+t6WW$bPP)vRyLx)JeE%yqfcW`GxLo!eGFaw9kzmiK) z@>bwp-D?3?CQ0S}w|C&s|KIEefZ5!(BV47L%d4vmHpB0Ccb|~)5@WZww+m5px3)6S z(l(2n6zNnN85@JCDj^|ZXICuTU^~hKdRY3y*NKTRpi}CJ{W1SGDn40oJAfqtYXKv) zqoZT6NGIt3mU`Ln0d}eT&af#XtH!|(*0W@MzKzQDLsQ&EYDkFNx6 zMogE+{Q2KGYKZ53vNH%F6INzsS_Cu)GErZld-twWzk~zfNZ4H+PfAMzUACmh!d-|0 z30|B{bKo@yB+1Ik0)_b_l#`2iyTd;+#aTJT&)RK^o;+pv+amEmP^RYKz^4XX7-TeX zr6U1&{13J6_$6=}t_EL&)9eGUcQrL5hV0wk$GM%lGMZQ^@2Ic`h=~U8DehDK?Vdkv zK;%2xTLVlYjv&Flgn9uO#1EvS|4{BeX2;@B1g`(HdXN4Sa_y=V5D>^xxr3C+=>z|k zY;Au2U3Yfh!i8a~ zilFZMw{5{;kBo{ULSTZQ?-IVp{bUb>8F)V9zz4E;VL?H&7%>Jme1(ww|K3ng2mXL$ zq^GB6XJ@~Ax6^{l%*>33ho>t|l#+UT%(>eKa2DvSuz?^!^Z5qu)gK?L+&6w{fKk&U zO?mO+#bM}XsGy)m=%WHDb^uI`N~`MYQ!;?aSm6XY@2^ims0DaWOKa=&0yMxJ`GnrF zG4Itee#r0~ZZ8NDIPI@LR#NKz^yw4WQ*CW+;HuY_)PTS+B>IQ9DV6~`Y^6g104bMtV!Pidtu{?#jy%{E#vdO(2V=jY#bhlCP1^!KUUrvivzu9p!_r$Y4* z=Vo04>FBj_?~{#Rk~~Sa?8NJ%-@kuvJUdwZoMu}Xz;Hz% za}?A(wRN!XM;|+EOIWU5)VCn?=dpUU_ztE7fn-R_uOt1!eyg~4lls%RjNDW?l!k@D zEpl}YjhucfVIiTh@p1BLPQaxVB_F4K$-~10(4Ty zw19&NLA$r|2~G!_rl=P!M)yb~fTC1E8@hiV!&jgcgl*{Kaj#zo$I5|KK_AQi_!H{* z*gJ*}oS6+4v|S$_Zew8q-Y%#(aGFrk;5KCr+x&K_23Zt185=7r1-F%&q+~#o;cLh= zfgmdtPOPk>votl;WWu48B2ezK&g9Fx@{Ve; zZuRpOEb7$5f3&($2%<0Bp0XSXgk$ zT?NSFJ03B`fwBhI65uZ)9a1}Bk$(RC8KkTc4QWv0A)SC;3Gh>IO~GXg2@ePE{}yy7 zMgmMRKy%NZpMOpT7`(RD%f-dT*Ho0Hju1U_Ky-NFqogr0VsfMmzOm z-@SWB>38f1G6VF1&7B?cdqyb5995<`ur7dE^jL5~WGqVLkWrr;Ks$u|=;&sEG);er zXimG09|Fe>0UKz-GBI^NM-@F5;gON*d1~+m3vuxaY29-h?qI0GO18DPL!t2XG>zMX z7X!VvN(oFgg#?aS$TP%t%z|X*el9F54E!_LbVx=jDvZHhQ1!S-J3Bh$iqyMPg^wUi zi+0&%&p>l@tktV_3TQWxl8^wch?a&XN=^~%RQv{wh^=Gp(pcIgo zf|IM#E!HmLA&mg93<8yZC?K>e$WM(;f*@!znG1SmSXfbRE*Sc-GPMpfG;faBRZGF106zoaMfH0_1|Aqp-5B!ulZ6^YfXGDuk?lFpe?Y%T@`| z0N0-%X#p3ssseZ^sNE2nw6d^3T)ip?mEB|r`|jMibET!FP!n)Hd3iOUXU2U6$czdI zfN#5=rU*>r7GN2Da)@?TjiWQO3W+Y$U#_(lO+&eYD`r;4UmO`4iZvDiDK+rpe13l; z!3m;`Z70)^hAiE*_Lul)moHsXfAk1;3(newm4XXy6k`mI3KWnhOHKygYkGDzpmG+H zsX&Q^F2P1x{}gZ)lAItf!0AD3$&s?ngu~0u1!7~c7oa@QI?BcKV)yUg*V0N*$*Tjl zZefwDT?A&h2gI`0yRdkX?(TdO#?vApm2ZFrLC*<5KHD1t3lw5$aP1%w1}+W@VZqzC zX0Q{gtI_QS_6{UOzI=fRb$D=alZeQgi?mudGVCrZEA%56^Xci-G&H}yC2-P2%M|o~ zHF*!AL|$%g*rrqDd?|{JK1VzvlRxxP#>V!oh}1B}<)?|Fk`q6ScMj=oHpV8PSI53m%LqO7Hb&K|z;A=)eI0 zFauD)K^Pt4>-8EK8!J@F1GEY4rM|8X%uSfF&>UdC!b2+4($=;m(^r$_75raqt>9_B zHBS-@7nn=>z6Y~*;*Zu1;CLjJ-TOzU#5wkJC{m$fONVWaLLqc%$o{(1Z0v{oy=q-n z*%+=7Kgv@89P8QxR^_A-Qjmz;@q|nYfI<&1FIbCLufRZF2aVLr%WL|HGlXe&nJFpV zoeQrZ=f9_m@AH{Ll0Zl2mcBngM~E3$YNK-qu(pu}%{Y}wiaFMnmJ9Rq?yJ>vb#-;X z7vnojITGCCK>hV^`uXb@O>8@CX0U=+eXB6XY#oSPkH>XYRr|)q!igNfbq88nDVo$- zF-Sjwh9W@;A6UjojZY6!FXDtk8Ot|VhkE(>sfHowJ8ZYw{B%?Z_j{u z-ed@&Az%scdN9k=AI?MTcc;rNDpJVo`EJ1lJ_lhKH|aGIXrirhKelM`kfafyiDeZR z+X2>v{PM?+uu9WQ{?BlUN3Fw%6lkJ{aM|}$uw$C?wa`l zlC>(4H8;)f8Emjc|q07W5B@84|Gcx57B7keTId0D30 zdIaj?ROBrq6Es9$g`^V}dzh*zij@X^ftM*C62t+~Yia79k?-cfJjeIz~Y0X*`n9-D#W<~Z$y#{nz0lAI~~LBaN#MqEI^kbtPK{H2-hFc zf*lVs+zwyURr1yoK6>#yl-04bV-0H7`e31KYI+;83vlv^c0Q#Fs-nKuk2%qCG zOp&Fmhm0UG>3gkkC&+{HdII^3DI^#R0B>iU4*nflTkGA;MB6Y8Lkw(xEyQT(9>P$|8If0e`WJNnx~Ah z!FGgkeD&HjaE1%>@;0`%nm76jG~!>r^gddtG&MDK{{4;LW77o8GuarJ4FJ!4;TO0R zLi-R;hNL;*b9BGesbmEl#}o%?L5PbQLR!G*CP(m9ulU0>-+#=VbLntj41S0(`0D>P z{g0AYw~UG?Exd-cO*rm|8b%IMc?^uEfN0F zui*ZJ1}qYszY5kzbjht7^FaK#-2{mkj~9Hm`>4%Y&qLoW^S!+PK5 z&4XizAEs^qoQ0m2x&g7RrJ~A-nhqp|{GKD#`LUco1#S3o2P78j|1vD`bczq}+}{)a z$iF&0-}BfrE5eC=$QAuX6g&Wt6M1YCHCaH>G=Q5w;8vc$2V)Zc5 zAuI*l3=I2@uC7-PvO#2m>Hjh6&2ssRCcTN;9+0U23Om?uAhqcUVPe<|m|_4-fpIa= z)6<|-R85Wch@dMB2xvh%3z z4eKwx1;4|4WPgpXr+xnqq${8~=(>Jo(3RxJ&-+4d*Pu9-zKp&_V9NiWdb;2KkMlb6 z>_0lMj$;(d%y65LLl(N$@dA>a1fr3O0+#$_u{^}W=-W2=#Qu|#l?EayAQYKw71RsG z9MC}cCVF}vr^)?EPuMx8CMKceh5qupwqXn zUlWB68WUn08yoLaF)}fIvcG!uD%hk*nLIVL8);LhGv;U%fNYxEI%1l6=1M6Yb(*$q z`ud~v;H6qZII@r8%%Y+OOmUF;_yBTsK|u#ZA@(6^_4@Vep^=fqv@|yS5D4=rpl_-J zo{YY5=H}?+7NocUbVvdd)S8%>fQtj++@78u`^J-9ax9N^D05;k&(USe{zl~Ncnj{q z%SrXbY6SGRul)f)AKduZKI@eJu*&D?iFW~xK#DK$GRW-7W%ojO8qlH)9X{$i-01i9 z>(^huegTi>>=r7s?4#G!E(yTC?9lNi-0<|=;MunEYyCd7$A-cF;csKaV8{IT6YSP! z2#2&k#t~nuPo2^z*vH?`>|CB7`nCQsW1cn)tK$4vD>UYV%tcrWa1$_FL5u2GCt*Nq zd}D5KYEZ3Pe*`69B)k79Sg^bQ-$=r1x@`~%Lz@{>4rX1+S{fR>>vF?vK&JR+5eUS; zBv*&OUI~SWca@I!$>9!6L%7`$LeaxOFhxZFiwM$pxET~YY4ja&(A}Z=tc+GprsI`s z*TYS2o3%E?VAJwI1l8Nro*qb0>pOo zp8XoPYY2(MCPNEAt_65r-&lnZHPdg1aPCz{MmYf}m3>1dt)xHg(?Xu0;AnIMVv#%?>C__&!jk`wdyP z?Hwr7g4xOJ53ZAw!@ZD^H+F;8P`v08qaXtXr%84c+;|C^9#GI$t8=Gbe`xagGyHy< zoG6L@O#HJgpHgG|9Sr}cpBN4i`*s(5zplc5a`DnL^@7{l+-r7YhEGhp5xBROmK4e> zmG$(v1X8$Md-R66qF+zVDH)fASlt|+2xSbV$5S!8(cdo#j7u4_1{I#+$XCVn)v9#7 zm@0|1P5l}&c$Gf0V=UyYluAx^cnX4AAW1GUeAkGCB9#j#{>yAk5ot#G#p`qt&FR(e zi+IDX^xK+A5Lh46wT?VFS>jVxRfv}%(VwUoy(yu3L7d`af?yhJG)>Hh3D(S!(L2Tr zmdkWHiPyzwE~T)(qLGNUEefV$87xuOlM1Y4GoLuG{!K#n?W|J+{~F7%n$q+-@kB%T z$Locq)9nL<&J+B|N0xURW#=~T#Fzx4dg^`haPD>nggb>Y|0@d+LX2JW`5GH{#7ZbJ ztIM<3zrTLEuH$-hxOW+!unRj%0x@hCuM<|xaeSPR`7*0wT*W=W#?Gki=C^g3jN&g( zYQq;fsxc!SNN!qIyEJWfcziW8mW(isBnc~2|7?Pv|6r*|MMC-8J!3uN98F*T$(`#p_nEF1Nua^{y}O4FMbWRclF ziF8aaDo{D3a3zqCNIIMLxeN9A`OY8C-7_h#q3?1@;fS-bqI1=LpPgW1osAbD6GQ!~ z_cMNLmpG}QB`b?WriBfw9wSw`wn>>Xf#kG<1&c;T>A7fBc~$U3joNVR-$lC9_{1nY zn#CoS1CQTzWiMMklb#{=LL|8;x+iY8y`r}sRv2Az%I}bguev8B6nrR<-(gaq8kE&uzqBNxx8>C0ZpV#BtZ*tkkxhh!n3Cr=mw9^Uo- zM-t-XrqI@MS!q`nC5$gbNM*`qe`{lm|B088{%mpnjl5oD#C_T;p;DR7)h>DAtoWn( z1+W}TI|T#Q8jPw$mdh?za7-gZe}40M&id*_qFF|D0tv;&(%xAq#_%g+Q{<$t?gmDD9eL*qJqV<(W*>Jedk84n<(k}{hq)Q>B+z|`E z@X3C2aG-MYD*F5J`X8M&-jW+)(pnMJ0W8SS8cibD>ijZbeJWF=5;C3Ez_@KO5$wgt^%M?ZtoaY4O9+-gBM)FuTr3P19%2X$bpaColn=`oGjJpY z|E7OmztUKXAT_G;s0t^uynDBlP(Pi85SC1iB&1R`a4d~~u~E2F-Q!k|C3b=!h_W6Q zCFS!>5v|Suw@udEVkfcV$Gbv7+8r*Ylu1g zmYVyngkD6^F`;Q$DZS9Agd^0>VR_ey7vj-v$(%B&sBF2cv+-l}hutHf)jcmo74zZM zINhQZp4fLymW+l0^@6w6@3ngF6-v|hy)Hc378a_5+5K}aBL83Elj#f75H@Mmh_`=n zWrU8yEfi0LG^kLWG^lxfn|efNK_y}3_chpn#?BTr*PXxdWxOTrnQya!X@bq`))!C~ z{BBt7kxO1uSlXD1Lv-vmU%G8hZ95*)q#%&mkyh{nwkW^k3j}qI#Dj{;;V?;_f}-MA z{APtk%k-R#uYb5b)YD^aN^dhWZjt9oIS8?^n)#L}$MvIcd`xi9rzznGQ@ogJbku^3 zHKR{gDsbpQvD?WKYU#6d?fXXa?nJo?D+^tUu8Sn+o}uzXe^gLQWXg>bpQ9x<3XyYo zo&6Iz=ynEgx2^2ZWe|R#Wm_EerAOE&w^(uJmr=X0ZNVej=Po`j9LzkaU9<2D#G`=n zW%|6qo_SVmCAK7O$%;x9Jv{_f>)~YIMD4+gbv+?VjH`@=99dX>P?; zCO9f(xa(0ZVa@#hwU+T0j@IzF=}i|(T+IpnO{gZQy^r$U|tLsKm5%) zx`Gv$!|UYuI50A!L+G36namRsOBRhTW2Gw00L`$l;0kqQ5fbd1fcEv+TE_Evth5pB zNHUz}&J<+Z_Q{p^=@Tx$McV>GY}6C)e?IkF9(Q|sv%eZ+ozut8-m7x$eO$oB#|u=S zp3~6e60=ZQa7jjN-0uEN_oa?b>PAG*Ou}n(n|seMT}^z5*>ZllSVl*n_T&5d%F&MP zgss!6cPw((&-GlJTq_xO?oQt79J@1_e8+7>o|Y_Y>uTxS>-0A)%R<%~rL~K+jfDj* znP#2B)=JFY%Et~CndKOSV3S{U6rfFVsIF@7`*29RS<%UduN*~YA{~dPUb|3ZPZb!= z>uZ8}!BdGhjvMupuXiQAmm_?Y)r7+`NKw-R+kmZUi;uJ==6+2~xWkJF3Y^CxETLJ= zA&fB;G15ciYP)zv#XP5bb5#o(q1GD8mJ2RT4_7xWx8Fs78ZEJQmEQg$z{HvKPVk4G z;A>gcXvXgc0jPEx%oEgb=*@($-{?J3?UUBVqEb!%KpX&hrM^#rIU{K{qeIRT4;7jj803Y$^KJ4HGHlF#1p zS9Rostd;yOex2_2Vd1XAG54S`wG=M7848J@?p=8sqq;y{EyWTlscfGgU+Eo6JTSiq zx9>2>n+b3xIq=05rO{~h`qZnb^Qdzd?XoW@z`-Z{iq7iu@#f}9h%m%xo#rD|#-X^6 z9XllOE~D+1=%>WD{ev8|(#q|3#%BB4Ke#xyIMtWwtu4Q~8a7`@CXU}u$Aa09nYt)5rR%GiR1`POVpeo2#_Dg z4L%fiD*xh1OU6}GgU5qMBNG+$wTq3pa)d7EBG92ZF1W)N($ly05pG;^t z%gPhQWnNuZ=n)Ubzt%eJqVe@+A zzc-Jc=#g?DBa}4zH7jK<$W6yv8b+ns`(e=sLHpb^p~qOZQd&?q!npMFll;nxd2-vg zx9spW8au*C3o5yn8uZPE5O#|$TPu?)6~6TGei?3V)TsIAG)2XMZ)Cy|OtfKN+xznO zs3nMfDHk>#rkZ4XQd+vr+ZLI`#D8texEl8QdHSc&Su3BrP3*7iedC$yAJ`WTo`{rN zt@U(L($>6@VLc+YOdRO>f=&KKzHV%Okt)SbqR+*Q=W)4gn)e%<@#Obg>=Rj$STl)nwz1=R^qOv{68bu7;)QFX9w^p7?4*b|Afpd&#p|T| zGO7smZqnFCUi6zvPwklh?xH|Ou5<9r)o5lO4q8@P;fZG{doD}1ciY(KGp4dSPfddy z_1UE`H_GkSZ4O_~W->>;y>qnpLj9Jo%aE3W$1|SnXNuK_J~!olU)@JeUCTYbefJAn zY+dGZg&bg;eVw~$5Kr`I>NH7gSqg4@KDuV5vU&t>*kUT-l`rN0C7_#>!erk6x?2v=OfE zqpja~m!-(ZBa4)K7~ZCxI%;E<7t3I|eU(i7ZJODRNb|`4M)ZV08oO!m|3%wd096(J zeZL0EK|#6%>F!Pe>F#bRX^@syQo38ZB&9o~OBxOh(jeWT}UC+$ahpyEAsB1x)J~ zFHjX*k18_fj;4i$1d+O6Z8k>}>WQ8w}{I)!l)=l}H8B&m1xLl3B z9J;lMIjeM+F+Gi?T6m2en^5o1I?hrv9x=!f;x==-+nF$=+CR5?a^Z%j1GH2O-LEp^ zIr$H3o36i}7CwVJJJT(32#$vLc$121E-r1RuFW-U)M6>5mZhL@Ce}KF9#cZcM?4oK zXX~Uo6~B>@hiC4*I5f`9;2;=HKHB*G&-$5{Y7cs4YLG1GDdDHx$j;)-LYxs&(jLzs znUUYsoJ3Q64CPhSkUC5Z11RT$qvZ`l-yTe2z_Vjv+u`oe0s5zKY1!80n(hWbh~JNz72wD$ja@V;v>*HJZEO3-PE94ArUf zq+r_X{->!^nE7NM#(!R}zFuPQX!4A^u^k|Uo^o8Su2z1#tNkkL)Usf`%(u5(XK2iQ zEb$PkpZ+PO>NXpT%+9naJ~p@`oP4I)YGF3^ zncnWRJl+$ZLT!zHOOqQ8>%+-wEi&tJjbAnbUOA3j_(0;Nm=+hup79ndgxK%;&&3aq zela<$7yij?JH6?xVnl1KT=1FCnZzsdP?ORscwoitImgdoUsbeg##Iim?RE0{p^;Pl zZ~lZ+XxH~~mrkncvK}wkuyQibX~tSvBL(wxYbX0m>W-e5QBhrYTB%z~G|>&p#rP%V zvf%3|zjI8&)t6zejGg;6Mi#Zr=BYA1j)T&WZC^9M#@@4lkHPnWW6G$dl*>ezTF5GY@6&0ptl&2^OtFfvMIq$@-erD?E}RkSy;G=q-h ze9vKr7v+_ox>-31R_2^Izg`LM`Gshg)XGPFGuaQ-)|-o4{+;rqy=i65dN6ZFxLH+q zw6L_dN=M#Shah45yBUNIHzmntGi_y6I}(aVq!3tOE&$HSI7mbYCrmH|n*_-{{Epk)J{9!hh(B$M%0>nK9PIu!cg zreoFA(GI?HnfxH)p!zOqaW})T$6vDh$X@a?j9=Zx=c(`#qQ%|48J+7kzFe`lE8O!H z=0g;f>$UfC>1qiqrTcD$r0OD?O5wJ67&{}ncoyh>UL($5ye(T(k$aU^q(6OLf}pwc z>a1??*H;zyX2!I2Hr1K{kaat@AQY*JilSGJni>sxoOyVkzE7dWSM3DkUq0*lrNn4u z4Mn=m9&5sM=XI_PWZk_z#Mn7B-nmt$eHrtM+h(9?xv$>lq$ONJUB$~)yD|&!Ra$`+ z(gFuXb_IK^#VWt$3uA8Cj_8sUyr;RYX=#by_E>VKxx95`%gbrcoj)|nyfL88Gn>L7 zcM)ID?88Er#mt{Ji`H-`qovrfCNAfi?2Z&sR*)&Tw>GeIZ19wIy6~ghjK!a-U0hsU zo1vF|j4n*BiPM@f^d`PyU*Q6YR2fV$-59LW*0!$}nfWdE+DhxP5{$W$Z`&iJPM~jg z^<2JF4jT>GC4u?AwbJmw+K2^B(#Jnre|EOX*s6OmT*Bxb6Dx*b#dfu5iHZ(WTHe{0y?uL%9n-w%yR`>b(|F18Vwcf#s&pom1{tyoRnN&UrQ26& zqDCw{?P#)SjanVB*(F?*iRQiK6!H9$(mxD?7fcv-7rZy!AgWGao|St}HnNVZE8f_^ zfpDqJOy;^~eIgR{EjWqRW*SMvNK{_7+Q-U;**t!cUhb9wDg zqlu>-d`F4J#D2y2d~{tE1<>Jf6`fHqtQ_VyIGt-Fei`}&P-;6@i?Vfm z?N6R+$E48w&|G#lgrM1y=!0UPl-T__a(&I+P^uyhUF8mJH9Gn#FooEg&&D6QG@7anQVi+OvfB&TLduu79_&s4)V?%^vhyh%;m`*otBwrdTu zGxyqG#gjVWLzKL|c{g>D|0?O^xCSg3ikiF=Z=`EavhwtGw{#mStH~C;G?VWp-;`j5 zm;MRGaHZ$f>QG;6uzelpws#ndN)46Adx~7byM`Uxu}}_bH?;&bJE`AFFbDD6(+a2_I77qJ_EC?NSk-_fQUwW+B)sXF?*wrrv#d)yX3>AXLDLrcGj zm88d{gllqxxpE5eWTT!Qv^2h~m(mXJ{2OiM1 zZio2~tr?*bR~Y0EMNBl+t@GL$UHTkHN#&0J;l{MCvNDlVeJ(SNGT z`mnIj;o7PC`p0_Y#PFWB4?#!5;}tZ7L^(XhzxEEt-J#!1nu?KstNUHgf}f1b-Lr{LXLB0F0?ha&1EAK#fuRdi)Z{*IRT%wEiIS`t8M|P6 zS=h$dRNi>EF=`Gf8j{&5NX|?Vg+ucbf@GI;JpVzwb=>8t(M37&3suh94yEw9P?Y1I zxTm^`5lOg776-h!HVDB3F14cMcjrgAUDQwIvm3LH+xDr%qx5J^4GM<7VxUYs6c0WE z1r4Klk&z6Pf;NF`8(S4jeOlvqtxk@!n`y_dBDoUwg8CrD@f5y3g?|F3`jMn-@@DHw z2HOgUsD>l!Z7P$9Ej@+ascd4nqDy!G{NycO#Y=I~y>_HIBw`>hqX#-qUwgPjwZDk< zLgxN?S?oI7Ae}^V;@;L=2-pvRW#BrU)(j<7c^e1>Ox}fG z9CY%m5(-#J!1@$4Gqg&|6aC?XL_7(4k+`Kq1KpkA$d2CC2vFDY$N zgILb=29o@~w;Zf(8I%pQL1GejN4U4+F+^5g#s*39tmTt9IJLG1yXj~7xD0WQNdAgRG{E&&k8AQ(DAL~ z`lxCCACIHOL^Nf#m(t|nEqB?TM)EytR-0>H!l58DMTHGiKD~A+xY1i-w8>v^qa|`Q zJ)cV7nLp>Bc(c=L<(_4K9Av}<$qaMiuMHY>PMY7SI9w+m~nhjg8PzfGCF@d zN=wX-q6PQO?vmK<7hv^1!aTeG3Z`_fWH#nlUsE?jdwCfSRu#KK`eExug`K%kG!;j% z)ML8R8?mOw$B22S_!>$pfGh+V9FJ~?XX=G~{}Uv!@n-IYnz~cL^A=YXt(7IPYe5VJ zwaEJB_RG-La@sVQP3|~(^mVp_2K)&I`fiX^IpykE&0hs0c@Zxe?Y9ocvI#4kF4lQu zu+9?1i{;MbZMv=mw;1Y+tD07^EuDl7gzI^H?Vknfm8`9mQHia(_Vmy=n3Ws?b34Oa-y{ zuGgGq?>)+R)e?=D@go1{In&%N*!4fehA|rjEFEwr$v`rJ{!rj_MA&7) zX-Zk1@9h5OfO4ZANLEQnvs+sDX=w-6?H}OO0Bi)w1k5#gj4pt`N-K?uaZl%Vpy>Ye zGwW7s6j4S$gSHHuMKI*ObYFUTDQ|zj-P0wPgwzp9CaJ0#T23YzoJHi<9YL6$l5ztu z!Y_Od`)Pjwf$`u&^j#IuI0JLKEPv3jfVk3uzP?N<3jkkgz1y>W`sJO8$vRNs zB=!E1o9gWYT3isX1HhWsAT59n(eJDm(2gvB{OBjqGh95JjHafyQTAY(2l|T>^FM}5 z<7$eE%s}$lxkM3T4njqMN}EjbSRZyh1p>*fYv)qa(_7unECB2R8mgoEomO-5NvpyvHd+NmS>J!ScN1N|oj#C}vx1it26J(Ny+rV$aKWJ1yll|Yn`9G5Ig&h6^ zOo1faPCeSjvmfpSNo^WPTSo{fm5k^!)MvpNlWjN9zrTA^&QP>o+#)5ccg~(!(Q$Czqn2 z4qLxI)W+u!L@(68mHs>W(Z2}EpTO|pZ>Z$|{>7X(i*CVHp>W;DGH3fF8tc)xj)vJ! zM;-MO@9DfJiFH0E%ty585M6W21x~(v-HrX{8pAyzL>N`TpB+i(UBZ@a1c@IC%gVie z#fE0+cK?Z$#0vrWlZ5g4t(Ry}f0CZX(Kz1#XdCZ+$Ogkrv|F17bWIo0`$}_yeQis7 z`YT#&%tp7e%>B$o7KCu?*lW>_QIO!SKv$J6p`CH;7DJa$21PBIa6l8A;7(#%#4aI9 zWlVGEv5?3Lqi%_?M*ehGCGu_+;^wsquG=273-QfifdQQ47<-07a8pL# z4Qe-8YP+Uw?(|Aa1e^lA3Vxf88K5{fhq3vc5k_h(|RPvbqt^NWPNo; zUt`>*+YnE>q4+mbCd#WP(u*UFXfsbFU5C7A4o&JXyxkoE(k@fs`|ceoVLawwT7hdb zMYI(8wpH*@r-bNN<4bDKICfWf$<3Hpcw%F-y@o~6(HXM!y&{wg7_w!(Tu`$wN>-x5 zGz85ruKZVaBEBC=cQlRqYbm~NgXn%kncSc}etFm+!j479wi3QoCn^i1-R~>{zH-b4oxwyYYUi9xb^|)poVY9pNWU=3TN2mk-IoYOM`t+OaDprw^*s#` zgfEncCH^@|I47#b>j5o#7|W#8r>5O+eRC?f=dwgHGcPR0)PyZ5w($d6@kx!%WCLdD z0@69Ty+4=xokfN9sc)l8p^7pLUE#(uL-IOCW?hvq{y zA~7z8%^^7spL&{ud_}TQ{ZLG`so>HwrZWowvPnFA%0x!FleI#^h`PerxcABBc;4ct zdY0%0H|5ZZqX=QR;|h*YY(D+^KEkXP-rtj&hrrjW?QoI6mu#`LT^3B>7Dn zcZ)PpIMHB(y#y*0Pm5ECrVk?#|02Dju?}Y7!=x<3Z>s(FeLb;XPA`k@jA$f5aI;MK zeGG?e?srF@->8C;%L$r0oS)|21X&^DDKg*U3nrSE`fX5>N7IO2O2oLZ+_EL(38OUO zYiAC)Gqr&(Ccz`EUWnA3z$}}ch>oVLx>y>d&E_f~nV9+_E7*&Tn5JEvDN7v(XD3M5WUZkKXaqS325B;ePsKRv%#JNSctVhK&;BHA~ z*U#;oV%^wrG)eEfdepVnU+(gduNx`~arGTDo42Og7zcO62e+A-PE(jiFQ=FC4;_g{2^C$lLBgry+A3vMUG_# zvV)PDZ7GX0iYSm)xfqNx7UyfYg}ZnqoXqDIP5nHbLIQ74p5v5(`j*7B9)UD9M>%%d z0?fp72m7_ex9uZZ)D#ibzp^9NTgn#?9BSqy$Anq9ldFWoONgi_J7nJvI&>ZCBbEf_ zG!<$L&9ruDV&kXuB$O?4ItoZ`{^|FM*&z<@<6SUR>5@&ZQl5H^+J^cyXWF3HRd0pu z5uPIVIYT?zL7luhUf1tc=vphG{(ZSOo*R5un8{^d0JOA7mMm40xjv|iG2q_9Ocrii z#@2OpWNEkxDDT*m$KsdI=Xsq`iqhOk~DKN1LIRY@Eq_)RWLPK6_(oF*qnMst|My`v&M+ zXJ{E2UF9(VsmjxhDjK*!DtTsvx%1fPn5JE8 zh$THkDRz1;)VzU44JCG9ga=_v(t$j=%9kkhYX%h$_9~ZUOTY#tsUMqbdMN>g1h(Mp zTJMr%9t6)ocX2?YlvI+o3vp^~uTVqIVf9)pRHa-f<^tCZTQHG1Jle4)lLJqS6=(*- z8>uPe)n9eFdB0SZ4d^|SGqMfXs<4i{EJE%1frDN`Z>6A$9 zwPYe>ESFZ*@KO|N-<(;E`jst|Ko~hH78?&W_)TeFh-#b}wK#PgE^fHx?Rw)PK_iKH*R|p*rH*WVtS37wXJ>@tRZ)t+>un`Bl4BiwNDS>DixG9m zUfX&ReX8JrFc=r9Qi0+ToTE(56R{yi?6=yYe|XN@br=$#BS0=^gr;KWOJhA1rxh)= zQT)=(3#~mE$5j$tKo~6HlF1c>MoBqM#p~UjcDYNTF3~Elg}_wb<%z6pg$i}YIl))G z^vh9Z&kZ(wVQv#zicba!AX<3X7o`@~2~IVb)qJg_NA>m2sY4AS#v(q{7Ex&0lZzf= zIwjEM{$4bwaUcXi1#Ci7s&@Ek$d(1(V3+|I;fuZyFe1$?kR)>rn*$94D>v#xuL|!| zQgE(mSyn<_DI{})mRm<}RfLN;s~ChWDYqR1(tm1UpCNG-91{fK`J%8?VKJYYTEXFt zPkuX#Z^;2WsC>|fJ;>K;k7T)vJJk(IMNpiR)87%1iRo?pn%Z`wBr(&SH93D9CGo_u zIw)s8=t$AZkF8qq1)sEo5!HvU6bGUjUA-AIsL53wOt*-fig7hDjyxPbaNF$x=^GSB z;qL3xbA@GT%=+mPHfz(38rHco=%_*sO42AQhG)>6y|2H~r|?NqIj5Bt$s|Hb@ncDU z91RhkB9U446Z>KMvH6+#R28)M6l%21+9>(UVhy7k9-4RCBX!7!UGV?p-Jgu5k)0I- zf#|D?_t{PMr}VO=WZN>JxBiAz_gyWq2~d|`eK&k&s!b=Zp19CT!1S?{n!T`0Z)#4% z>jQ~kn})*5&U){X>*mu!4Kau8o9)nb(*t=#2SF0qpbo+C z@&}wjR-zDh%h<|w7+vv1PAXUr#>~m$3TSUom6$lVZgf2n__#QMa3LrMm=&443N$)c zY~Gxo$W5#oZ1s8}W;W=qEwBC5(jF+RvWnNQJN3{k7rs`Z<*aKw(^SWEDv8P%!zo>h zwFWgRSQg|_Dj<6+1G!@~)g}>#^&Kixa{xpc0?o4>{?KeVbFkThNDKXD?)C_yiPvm~ z1)_|tc_yDy3+6K4eiFVgALHow%5rPm&97i7E`|3n_(Z{N5Z}(+w_*%2Gym zU(DXy_9DK-5M=r=d~mG}oupuI2{5*&ayEuJD5%cLpl}5D@!LWE$dDdNc_3NVw|GC3 z_Fa*^8B-l1t3t@?$<}r6|A`4Ni7QA4CN`ViV6*M*>T%Qq(Um>@o*yM578dbZPF5fRrTVCgV zFAAm0XMW_1SMOj#va@*wVNH8Al@QErscJAYt~JA%3nYIzvlY1JS+Z^B>HEwMhv!xc zwrx2nIm$yTPfAN^**&M45Sx9;V&Fr0(otmA2$L^yyTaJGy&a2%&ra3jZwz0c=G?9E zelAB9@-zRLyJ(bde%GPUW$(ij<47ZE>T#diX^J|g7?9CF$5s$c^y`~7f?$0F)()Q! z44X|rGRRxPj?~GOPzbIMk$D0O%9dK~<(pF}Kbi#jTFwZHd{CCFU9b*&dAcU{Acx_?l}6%yE6V6HhqqAhtyJT zbI9cC&%15^+`gNZX_5^JdmcfE%{x^+ z$1u9!ON5Rv>2D$iq@iJ#)G?uq5j3heTIwrfo7g61^!dN&hG((s42pgXvlcfO)@9mG zTSY464&&U%x@@O*R6N;)MAtYRIsH3V`6$T^J6+xJ()z39dNh(0Qv(k4YHB$AB8NBK ze}94Z0M_l_dl5@cSuAq=cXsZpLu(+gT4;bm~yR^EOKlzIlf7Fw@ z9ew~n{PXiVvg2w$z&=iS)wyweobium@!vFvmSrSUW~}xB(8uHQBf#ZINd=eg02jcj z-oKx}OJ^mw26k!}fayjidA(=r9fAT_+3Gg?o2};ve{a$GXeu@9b&|3)|FHuJLlnS! zUK1NvYv}`^*8j*UGD#CKs{o`SSz{|mCWwOs3?b>mW}ClB=+}d9c`#Ffk9`ZyQ3DJ- zl8*j<@L8GbY<&~}cML)?MQ4B_OWy#*?f2MWh^E@3{k`LGo!e>5d0dtg=my8f9ah6Q zDWoK#W#r^Q1Ru-;)#zV6h^O+H1KF7n#1jUP*mFzw&Was>51k(6+vnwrKQK4}x6}c+ z(TxHF%R^i58$8K&#`wSIe>y7ZCuudnGX$XTOh0@$$3%lWS{Hwas0W0;k9j%PAZ`t4 zx#$M;s?7fW=TGX?ZK3?0)h~AJ4?lnY;R{MvJ8wS#z%0NWr11JGdS$xGT-n^bVDJMi za4^!>Q&wgL_A6Q1$Wa)BUIAe%dBT)Hdu&NRRQ@ym&CUF`ui?e1bp0JwlD zQ2C))n41Isz~}?ud}byIMAZT1o5&q-oyZ43SRiOSXgV1JE@^VPQA4p+Aau|vbxqo>ejgy+6X-O-!ExlhKR8+j zT&qt2MgxwCJuem#qN6K7%%9(gwrw-J*X^bMOKhIhAz)?-=)qY91(H)|Al_C0aNYEN zJovx??Vw(R<91R*r`zvUOX2iIYG`ZtWbYLmV|8(-#jc0eCCh13%wChB<`mx0<8}MZ zr0`^=)fD|QLb{3jRjZ=c!DG#uAWWaJ;U->7Eks<8yIzOuxI*D1YvT5Rabh;9;7hap z&g?z;=IOd#qHoc}B{Yc^N67SJ$L;v@OtIV=Cr?;_%dLy!1!IfCqky#&?@y`+h0CL< z$o?GO1CefWqah6G_FBumA$PDiUj9G2d{S1Ql&w76-^tQ@T+*#7dh!kvd%hh;y0vm_ z-ez8(U#Yt#CtYMpVm#a9CG8z~F<1fiuZ6zfTH<3yO3@s%w^78Wm9QwgU zqN++Hd$i@ar9Xew-L`4HBHdwIy`ar=fwsa2Z)3o^2YE68O{qaZG=S$l4ZRX+ZE2Y5 z9f%>r{Bf^eZ>>AbJ7e*lPzX|lO7F4dCn*%@myAs^cTeke$e1sy#;_Yi#Boa~YuiRP_$RE9m9RNcBg1X_&Z2zTS#YZ>l6p?C8jZ5w4)2inon!FkLEWD?ih_ z@|{@swVyo>aitZ%yPw^?Tt7!9b@u`tSso&V058x&(QsohS-VhcVZ4O!eN1)nE?^vX z&sK2Pq5LcOHIgbF>W-eO?@d;t*P?oEeZLB%i<&gq;`k$rTYnQ%M zJil4>mB9PL=NHIUYUn8Z+we1G1hXFM-*?ptoSd4j<%23NGhrtsDPz_11ec#|^od#6 z=pEm``{wCwx!hsOCDf~%vZ5+~7Qs<-;Id$w56_>x(5hwl98=%qp!MZ?c!d0v)a=&)1G~O8XM&S5IN^y_& z&5OpR<5{sg`Ti`ui(TaUiLsIVTKEAh8r^k`kfOFb`?>4Gc=x-VJil5m+jo|_1AA^& z%ndgQL9PfMZ#nhOD5p->!w2-EwbfpT>+SNYybMf_P~pc}I6M4#$tw`F2lKrBtq+P% z8Yd8Bb?0?4SFmh-A?kczZ0pHSzTCScoN_Qm0?z+5Lg4w+<{It&Y|plO)AUoz{ESNS z&ELPTFqEJ~j6c<%LG!`G=E|pMU0-S=3#*O4rKveEdzR~7X?tcOHEc@hlG&5|#N_1@ zLS0f94`Va=hiq9_T~^2F#h^^Rs;{i;PGQ%{m7a>P4tGz zR=8U%uH{M`wW4Pc&S9p4plZRPzB%e#SixJU; zPt!_Yz6KAmxeai=M6RpST(EUDx=H`K`-!MxQ@#0MBj#J<#gec*o^csX`H>+xe!*?I zcL$PvPvC|DY_iclk@$=t-IAVxy_vSUcw3-^*tzS~ZJXz$dz!0u6X$Msz~V!5og2Vj z90|j)i`;0u4rlJs18V12^#ukMI_{kk(izJ5-I^wAoqeh=zYI-j6kWwo>yu;OZ&M7#fu*u%Mwk@3|JxHu?2}LqRSAH*>dd}Cl92N_Qhu=PUA%v zvEUJ@g7|dR)h4fO&$l<6P_ySw(8f#M=H~O6+>wiyVSl~9Y^piIwJyC9_QDmbpHnCz z!&UG;CqC$D6jXBC3;W4OHP*M|U(Q&O`b@toG8nxQOxaycn^-LwZEhu&h-b^SpW&q1 zBfOrH%h(mhbwNn*LNb@kx4tU$PEa_BCU!dEu1ySF^hJs0<%hPjhnmu*u%Slvv=Y(R zsfSGL9H~V+F-xLTNymd_U`#i&XO7D9l}TS`gG8cI9JJcvW9vn?#Vj)-u}ImggQotU zlqa1HCRP>&WA&rlp7o-aPECIb4mZ@xDMrE#yJ~$0>cng`*V8J4>=Mj`TPdORd#;?r z{L2xcrlATqg;>)+E^AnaRz6J<@=e8G_>)2D$z=)SmM?Oz&u;V< zB?4cMMeJ8bFz;A7c7nV2+MMCGl-ibAh|2jl^0GB7w{PADDI~)%quK& z<)RR8RV?P4g7seZ9VDtareb4cXn8r97p2d=bU|W7T>g_h!u z6>PtWmahrF#Z7QZ9n(c!wEt0m$eSvSaMRhU5$rwfy)f>7{;_LM2a1$BK&3n+RKH3J z~5eMuNS3nl-cK-<9Bu(KI3ZQbA6{Nqh=S2-54O+%m4 zq`Or=W+w2$?nudNnkz$7dwMhR+lvk!bLo779Mvy!qJpOB>?Uo7P^relFS7nnd(<;R ztOoXzXM?%h6;xTKIG%92XP{)Vgl6E!BnQtTad+ENN=@}ob9do=!{z4c6g=#h^CmQP z(iU2%3pZa;ZHdkBVzm0n!YadDRV*|Y?g9qvt_HrYnDvY-#*r#v!y|NqCE}CulrWf! z!~0+^rzxVnn%8QM!#^6A4o8LzyIEgF#kxZqroT{v0azw`N!r&Sv4}V8fvuKRRoNQ} zYFaXBoJu>bdJT0f)(7Q<2iHqlK@p}PQG;H7Kcr$mgdyA?_b(H?;!L)h+vH0*G3RmT zV1AYxygJu}aYhj>LfZoR=jQWx+&L^w3VXZpk-<(N#!_ zO(vIjdAGLR=K`gU9-(F-C&B8t!*yVyV6YY&Zat2%EtLNycl+}|(&2UbU07#ps5_#$ zT+G~J{u|NEK^OADIjs3lr0Gs?%=_|EyCA4qmu1AxJ;?m4G@b(r9Y=)%oyczsE@`fQ z)oXc+DmL*1ix`3%WSb8&!(B!_sLQF{?7U7_omz4Z80ZPb5~ z*F+v{+ely;O!#TcT{>pAk?-&b|6)>H*@Iq(lpQv36V~xXzLb;;S#ZRyiMwJCK5Zu= zFQv2y`Zdh<8Go83;f*%`MNP}TU&nA%o(lhsm>)_4w>;M|i^(9l>km)6N5mq@P0REb zJPh87F9{&=jCL}fQD<_35c4R~wm}z^fXp6kruLfAh-u1O+pM;=XVnV_uO#cMb&I`q zw-+ebn+Htvq$91Y4uCj@&{R1OEtF5AW`uopI*~zeru(f0uCu=5)Noff=eP0ru2*ky z1un6bhX&zHCm-QPByxl0{57bB2av&TMK#Z7Pv^g~&xC>4f0Vhk?&??M(^&Svvrv=q4~kG?P)E_ytpJ-yh2vE=N~R-2S_6!iu< zG0-!8tvO%2;AbE31A(8<1D^70j<1?-&-_tv($9H@0BCJGq3YR_FTi8a7BHIuuN`(A zUGu-zGZMa`cwn}vsX>9Sn&)P!3lDy{X*!>q8z7Zm12GN;HumQF`qiCR?OYg&8z4&S zxvs~7hxi!xByJO`lB>KS-eof$BOnA~{a_ZwvwZkcW{gXDag;9{>n)1FY4OAng5((3 zPn_)~qYAZ!y)^47>m(Ks#GXZ;OVg;ObKV+;Ynztx>M$AFTZ-CPqIF3yAAMe3gm3x8 zT#gfap#xbHW#;}ffu)isZ(pAM5>4BZ%BHlUqt3AqJ;Ul9rHa34aP5cxtD-W3Zln4EnpsOYJ z1BDuAu!d3{+)Fd(WBL-ft}|J*qHFXqLuj=4b*=AYB36mXyb+3!#ruefI-d-Bk0JUh zdV#WSJee_(+|`(tCN-{0(}Go_i{jM|v^H7Jq~rKQVJsr6UR{$=ceXy)aL!WcWqKF% z&@kC#W16~3@76C7rRAX>k<#h(>?J6#1b$r7p!QJ=&W$D1Tnp5-qck|xCk!VFAM4HX zL3J+a9o@8YDXdV?_|!z|pqUJ_t`P~A=gosXi%pi??cqth!Npnn!$arxe1_oTGQms5Z}3r7#LnHweEI%`b)lAnq8AozPcsLXvaGoCzG+{5 z(>^m3K1d#gMhT!>=!3^pD?C`weKQ$W27&F-uLUVh7F413sD#*3dwNF{Vj13m^2NT5 z75H#Qo^syuZmE(3f6gUQrdPw&m_Z0PTTxp5dcYr*7(DGwHT9b47`?WCX%41G@+^~R zio)hO3FQg`OA1%U6pjJ4V@p4Ut#RJ^(;}IxrO@5WDB>#S#lCn{WD>s)?E_^`UP)+Q zo?LDCy;IiF^!?J#sFr1)Q7rj*t#h=|v3^oc5F~SCqp?bX-9)Zd_ESL3IueAsVvm39 zoAsMBCLsw6U0U{*ncAdurH`v&RYr*u=PjGbVa>FGuGkZi-+F4@s*J98LM>x6{Un@! z+sR?`2;tf0@U69gTllp+ZrO>EStSvQnd^PV69U$N-pe2L0QgAf2)%8qY?;(O` zONFjIvh-L-U2>A7)#grZ4@*i^jA4_Z4y|u%%>fhHjy8t#MpeBA{ol5etK%~+S$}B} z(t9XGu$h%Vk9Ha_MTOuQuFkpTa4@%9^gd>=BuL?q-oEW*UrilnM_WAi^pjXVbO7yL zhNUb#Sw$XVkI0EVZ_?|<2hHi3>+I&NTPu*UFgL^?BDQn0>h%rmh;u=_4AW6)E)2EG( zT<80I5!!x7nwDl}iQtrJW=a4az>t3p4k;C?o#&fM*N*+D2J zEsgFEVl>Glfs24eG62{Dx9C_Z*y2Tt3z%NhDiUyE!;7Bq9Ex|3A9-uajzw`SxYv%v zk1D;OZzSr)c#Mh)e~gZbi7MLZFN%SIifUXyM1&XBoauVB~1<*nnc6H|rs z2GKRWHF_W{VPK*0z;nqxK{BSSYcNM0K}KFZq(MidXv?*k2kAaFSwCZ^i5QbtR;f%> zt4WyFnrZfP>E_u*s+={G;I}(}B6Ea;ZiiiOVfHM0hbbc!t!BC0IOtBb{jG@RHi5yl z)P7ufVNGlxJ@vr`;<^8F;RdhnV8+J!M+T8zOSuU25ctH0ay;$ zb^s(7fN1`hLVm;J2v%=A4l967?F2{E;J7zY=7XoFCooL~mbHL5c?}#W0NydPZ5KrI zYHMn`0@y1!g$5p8X#(C}z%r7e)n9>1r@;}puPpdJJqo+;P?1%C4ASR*ZfU(M-k#IN zmj3LyxqyRNu9KT4sdv(a(|3AK^MO^9RWBg(QrR{CkZY6-4C`YI}DDdNUM*<+ZlkUkSRqa*V6 zo=d1*W;dPtjlaBOeUB?d{F?bo`<5%e*`xP+IlwL*0HAlI@h5e|=AqC4e@6h<1FTH9 zX2qpFuLmqD-rT*%3!YR0T->C%I8ib*fP8PXnqdJn|IeR41Kc7og?RKCxZ49qTHue} zVOS0{#onh|ijHjn=0>mIGCwd7()Qj1c6UKR%7O8^Jd5%97T#STF5BffV~_tr@Ux`{@mNKa*M?YoM*&_PamNW$aX$|L==eO@u157vp7Z<$b!3qH$n;eFn5SA-}<4=y4A9erM3Becf(~k=<8o*@zmpQBV z@FaBlE%>c}0523EUW=x*|7Hy0<5tp`u?KMY*KtXTe_wb~jXC*w;sYvwAA?|5A|u$2X0j(-cT1 zwJY)OE4@QG&G{sj4hGH$x?JERv}HT&6+2#K>Qx#?qj~dAQ!jPUDc|QI2@yji45(e! zgKQ`I2wgPO=w2X=(TyWb^jG(~yVUvXoINUm6~xaL-_pn)t{r@94JN;NLB_d*dDpV> zBz$%<_*5-%P`?Y!Q7T(x?m+wTqj?*JvYe+*k;0ytlcd;%>o4|LFSt~{(=wU4ix?-T z4LAH4hua=3yq_fz&%9y!lFxZyETBOrX|3qbtstk~Pj1nCrA@t2$e@~nx9OQg(rdF* z%LsWywP8M%949HeP)&$=a_u;|6vuc^Av==5j?=sTU9|9=&!bp|hjHZ3lumh{r&o^;|yya8J~=e4gl709!%jM4AkpX3@R{MbnHji!#xJ+rW_yyH-r(q!jkk! ziY?NmY=EOduWl8KsOon_GAywxu$`cO&P?6y#4KIdypU11kYN^Gvs6t;6JMttBY$x_PL&evS z@bL%rl3)KQ@5Sf$Uj3(5XO|WOrc1+KDjX^~aUHW>VVKs?y7D%rc1K*wWGOEN z^Ydb%`mfVU9YT{ENwikk(w+PJ9ssf{G*niNd6x?#3tFNZ-=k$}l2kT}vQUIA9lmRR z>dSE`8$i@@BxqgDD}Ou7J~T^4FgLLtMn8oR>*fnFcMsnR+xf<*{LFkXfSS-B>*}rQ zZxKo_0qDI>Zc|YmeUWUJ@*jQVay2v57SJC#~ErUAKKe=tbpI=w=qn#8(9;zqjWlXlIPR3=(gi0U8*3G8TM;AoRbDYU*8m?-c ziKX89ep*a>(l@U?Bi=VTggE4$x7A)2X&kF1hSeguR^gq=_-{v6x%Wur zE;CG!=sdd3>Nq37tH_QW!AaSRw=qz{}v{#8~o{i`$-)GzXC1tI4c8R&qLDSq7aMOEaS^m2AdUOR)xp(Fi>PW2c7IjZDE}UFR6qQQsO@{F4JEbN>9s46+hU zNeZ+Lc+C&Be2IH%zJ`S^Hw2K1Y!8&7PoxvCAH5?-)q7dK$O82m*SIlrc}asnRvAls z@bL&kC5-^qiM~}dG zvm~`{4XU}Jm!GHFUUnv_m*fUBdGe?=eM_W{zl~{W??Axq37ort_Hj4j7oiXjfXg}% zG*SvWnBQPaEYywBEM#dB%M`Vlq=k|lFO*1_(yrU#-iBgT+UWb!+^L)UEV!<8QizI$ z6#C^4*(e{-qJSCMZJp+((%9=&_Yo5uzYipRyZyK@Ds!x1VA@-wADda4Kz2*GP?c72xB>s zOarawkugAiSb68OOr>DcE%ZSetD|H3w4YEWFVMl9=ti~j!~Ca~*4n5g!X5F%CRuF6 zJTs)gMpvKlSc64Ir)crhrc9JtK_7$Kq^fVisIGll-7|fYdZ`EnhNH6m5k!HCE|uKH zFv?pZO)o?3HDU^`eT=(4J?HO+C#6N2Mc=oKkXL=z&!cdJOU5A878Q}e1d9qO*GUf{3sS>f` zO_h0?lnX_WjkHlOe#E#9&`oxFq3Gra{r={lv}pn}y$JPv9+T=-wW_ws_$wSIwG%P! z!@6%X#juSc5lrl$0zQr9X0cL*?}@1Am6FDr z;FH?dXYgS_-YiYRr7d10@d}~`z6@zhh|KFDeUnOl&y-86mPesrIN@-K!w4o7&#RbL z(79cWks;XEv2aVN9Q-~G&_mV8I^oCh)_N{JK27`_)tAhC8y%v&mnATlYvw%oXK z&WWyjnq#G;OS>U|I%OPAxnka&FV#+4c^*ENzG_72@3_U)PA7H(AUUtT}NTy3DHTCjT@NZ%B{v6oG<}e<%w_Fvq#y_ ztYNAYvs%D-?S2v}pVS;_o_{@WpsZ=)b`bWw?&q>Dy*1gJQ5Z>$GTh%0)-fDHdfVa6 z>HaHW8Y>(9s!X~OLwD@10$GA-xzRBpf@BVE&*Rg zYbc^MZ#vRWml6<-=Dt4O$d?j=&sa280BiyUby%lXooKH#`on$rfk^=;B*VFjCTb2- z*cy_9y|E0RO@m60G2Ty|7%LvSe-_I7r|MW#omvHJi6TGbAs(Uynb@^~t_)Kc=ObwI z5v=oqG8Jlhe~(c}%%H{+Ez#1xnT{5$)&oq+9ntD^&* z56Mzh>ateiBegve-?s+-t-T zMzUlEZHbpS6=oST#xeIU8w6Jw2MViF{q^A+jasT9#siUQ-7yy3TfZq1ML6U=GY*qN z^vnf&)oQU1W{}SjzQ7F-h^-jxU77p|;pU~pmn;`mW46ZD-7%8z;qCWm>?&x0x_a>x zB>n`+MD@tUurM6LsRp?u58R|p%%|G8g%VJKhuaRaaOYF)U{Ou)Q(0C+?yw#P`SCt& z1D;tJ;dyTNW8w*|WZAef@(^5^OM1rErdJ)gd4B36ob%2D731h!~3PM~^a^ zv0wW#XvsZht!YD@QP)fDpj!<4v&9RhjLXD06|Zi9-8|wnd;x_D8&gfCcxW!Op-7l{ zWGO-D2ONAgu(Sjg0N6r(C&PRuCl;ZUI2$YI_z zPaH$OC*_?@Dh&sud<(*mFrmUksD%bSt|}C|%>n-N5#n(rRzkSyOtzCu<@4%)C%ct-|q zhY+AxHEJnX{d~CjkyxinNuN@|M$>STXOtMw$}YGC52l;Bn+Gn8oPOQ)qI%_YgGcdKSg5UwUgJ7=e=)0mI=qRC`OV-M^@ zx`f%`{)awnjOLmuAPdbRztM%Qg#cNNVMMy*tjvURSvhwIpIAuv(2S=_0++VkVDVH- z2&{g#=oC$VCLPQ$+20^R{?W{$oV&1TC8yUFBte|uqnUWPs21|QF;$cp8Rpktlf7O& zpxu05z;HfFbiCwH^W3EJNIs5{cRXH-I1sln&n8Gxq~UjY6sy&es7eze>mb%P~@G&&D(UPo$5$ulG-wBI=Nm+8+cgw}tS^CLC#8hdF7$zef6nVWBfB0cqG2 z@nJLND5sppQ75r6BOr);`N#gCsjO;&4y3-D{Y(FR5h9yC0G}omoPok=@tNg2 znb@li=VxA+3|a{>sRCf%t?srmC_s6VbAv$b*zp}t+sp5~f3xIN0R$I#fk1!=qZ0Mq zy6fiITkA8;AFq$oB(?vo1qhc;Wi{XK4}%H#8{skh9Irw%ojDp?<&hF1YX z$Aw^=<70sl&Uz2=RjJ!KKYDNqJfuJ>=?dFdE#TjR6~JM5KN$pK`;4KTO`^YP69bsS z&g_%8SXBN?E{@S(3~igfP4wIcmnA%%hg8y3<*W92*B0oxCR4aL?(^UBgCpY79cqCl z?bCS5!^+-i8%N~tQ-VwZgt~>701$A^;T3f5)N1tkkJ@Y-C?6pj- zojt7R@3Aifa@Eg&zF|@-L@?Lt%vFPwbiW8gCCfgpGB1Z-dN<()fc{Szy)?VkYnpLCFuX5us_LD(}- zN)vgHuu4f|gvOptpux}1LxqOZQ2F!zW;a_M)15JsPJ#=#It^~)*r;z2nnq{b0!3mf z15H_rhyMCnnVxi`XUn;pc3r*8l1C#^8FmdS?;Cisd~M!HRZ`mpwcj3d!U$Vo+Efngp*bJQZstiVg zmEQdYnZ!13h##~3%ceV=10(n3fG|su`{1nAzCg5*N!zYKG`Q-f$q4p-Kcc{b_dY_m zDvp5i8wpG;jjG$=UvvOQ%)swCCidF9RHpVFQD)~OQ5#nt;Gq1i2_4>CTBWc$wG0Gc z_ouRV_^D+q#pbU2;nTu+e=*e_XDp|jrcI*y$hPlBUelbfk+!*^m^^Ppt`NdCVobDS zkM=?Gm@@z_+F~{TkP-mwN_A^;S+^1m-})Vc7Wyz%8bBi<7FQ_k?ABxV0fK2^F#L%* zsOgbHPU#t@6djJ}GNz zC1<|HTUN8Jcb7=Xf^+NXKTT*R+LHSQODliDr1?@FMIyHO|3I~|Q}PuOTX@|KnO0Ng zRSFNgVdpOLq>zgXzX^vcJf1F~$hYAgPscDfdj`-_=p^fp7MAexU_F)*qJ%40uumJs z8wfV`7Q$I|oe=GSTtRhnPuV4^sO?HKld?u$zFXdU6#16N6%$f&y+&b9wZx;wL3A=T?1uFC3q`70!An+2=qK9=?eo#qH6WRzmZ~8s;$?l}l5(qE>o2_0{`P#{ z2H&$-!kf-4RaN&>RXh?&iRB-|0bnHPtpyxQYG*M^#oc0t{A*~HGR#(YqR9PQu9%e0 z7fx$d*>Akls}%Jv%=Di-y%7R!{Z3}Mn>dFg$#e^@pCs3#zRx@xy_;yYS%3W*d4Y8q znv-GlXHuJaT&Z8#T6_mC9w|zVc4L6p@YOoH{G?mEaHhjCf<*b`YCcsf&va}&QmZCV z->?-#@JSO*fIBzeWq@O&+GNb2+}*6E!ZFDSqnQJBP?ntUJzYT zus_2~H0o^t2Z@HbE&UO~lV+WhYx7|&E<+!gOKo?nZfHvg6NQ9B)lbfYx(8RNs}Czr zA=UOOENk00krU9w;nOApQQA94|KQdf(|P@f4l7N#y3kM2HU(=LYnysp=M(Q47)*-> zInNeRrpZ8)T0BTw@3K8vDYaXN>^3lZFW}&&&lD(#j zp~C!Ze>gRf>NYe(&lIk%Aw*6xm}J#(MEIcQ@ZU zg#&pmgf7-GAwko_zjCy{!#65z?`gP~W8(Q%KCLQ1SW)Tb!_baE)|($GM6M0Qe*3qk z{i64ag>5ARJU-Jq7VOm_du|{yc~HEk0eQA>+Z`s$oVjF)#$*0?jzP{Q>CADAZa*WP zhap&p4CALSFl?oq=gFKS-;*B`rv_Wk_FJC_O`@H zk?U2|R0wr8s8EQIzAqf|n5kMAEqc*_Wm;1uLDQ6Pk%hpFwAHKhQLyh`S6a!pHEJFG8Ds{7FyF9@+?f;D3eIu2R2 zgjfm;F`-uE8%@Fh{1_aDXc?66^d@c$8^bsmcrOo8C7rF#(u-&vQH1=}WZ@D7B7jye zUjX7)%iG}-qKryR{Ds}+_r$~uRbwf#W0W5xXjm9_uLc*qN{{-epWJ6N^;jihw8WaK^nff?glUt7DaK{8^!m?~8H&wo`|qnCALa7xb^Ee1a=W9^+@#@=?gigavG>Wtn;|G~4$X}ZMK(Jah_8!V79=E%F(h_bIQI;2hs zxw5h70?FUcg4dUtasO3e)py!h%6f5XDeU7PPo%SxcNdu;`>pvBUh83 zT;I?p6lp=K#W#Cd-*@%3+HX9&TiZMg@-Y*6Y-InHz_0_f7= z58J0?Ts0&ofUeDs`7wWC-FP4Uv zZ;RdTo}n@sYA*tuJNi{Q03L?TB@kh&Bn(#6G-?Gtp&-hq zLS<6*c&PQ^`b)S&!TCs%8Tx>8=}dI$Il#*d<$MMCyEDkvD2_Wu|z$t z^{<;eOC2C1V$oE#v=4OgJd>cBwa*&!a!?fP8=HXu`n(JV0Ae_qCRTPK;oY<{Bo3yh%5 zO#uN_i~$~K1GdincT434La86&Fc$m@KnT8DlDkcl-zxfG24quw`Q8TiKh)s=AIJIs zpaucv^Z$bk{eOGomITtu`9=q~{kAYJZd!NukJsDl>+2fBp;@zfpx-(v8JYeZgHAgZ z7M6I?T#-x~(8LVi-Ti+kedzu;{CYs2vEycv8@P&y=aZ{bl?9Y+I61MVP51z13I~%J zG~Zx9fdGBODxibp!=~@%?CkdW`G2mo4Jldtmm$sexzGP%4ba*ewMJpl(MUc9Dk>^6 zG80XkK4W@}DwSGC+uIKBukN7k|B*Os0R)@5x!WevI4H=-fct&CnGQn#C42A6D0t0S zN}8KFDJh3XM`68j@$q%Ew0_GXAt8xTv;s2P+}wF{|16S&3;DQYI!QBBD?H1(lV+<;_Zl z6EA8OYd{j+pa#nm5D2ugvT9ASfoC$#jzIXIKj<||o*B~HDH*Q^TFL`8E>z!u`VU0V z@YGZmpEnr%c06Bp$OEWpe@CPM1d!eAfgx&Yt^z`YVroYJot;b~UWkk2dL-f%@D%mDp7|C=LQ800PXtUUSHX5)|&PEf&pF2`o_k|3~o$NHPGP`P^Zu2 zcC`U6-~C5V?>}`D-rkXmVYc`|6}kVNHH7cw8TA(vc|Sd-6aQ19f*a9UICli71_SFV zOne21umZZkbxlo3Ffh$_|A3p1!1?(22uzB>L@FCChUM$yl~^?XnMK1}Lh-NvklHZE z(4BB91bK+PELaUdR~vkO2R2_x1n!3Htwh+y9N8cf)w8@9~F0hPp11uq`5}2dm@A%>w)64w_SuIa zB{Ld*Ro^Y`XFJ1h-?a}EsS~tK?;bFt+rA;+Cii3`co4Q!h?c92)*t(;wFnl)6f0XL zI1#EKzJ;(2|B7ydArEC6ZBmdur<2l5us;upsRLk*v-O*&iMO@{9I7lbG=1A4t*5iG zQ_H1QsYo)fhIZek$NttHY6=t>I)|$rdKgGvS%7#?FYRxawt3s3ANahOIvTvxhHX}IW};ppvm-kmdas1CpKOHkk2`wgh{;jmc)Bw&kY zPR6wuqlbXyapO-klJAXCMT`2-ieHL8Ic*RWh~S-Pp6#iVVxbqvTYu0&K%#p)tZm*4WeeTZ0=pEf&46Gj9GZTAQ`tJ$W5z|8-#E-dhFU8Pm?C~j%KL^naNqVVuQQ6we$XX zn0ox>L+PzARmh@uk}qyr@_;3eM#h`mNlzQ_&@q}*1;eBcTvg+AxUS2azql_EP!*mA z`(j)k&dzikm!9sTC86sl0Vx;J;p2Nfc?jeZ!EiO?2amGgl1RZjw1_2Djx&r zHolc*iryaHq(yj;_`%;H&ZkE;mL1~4GkO_b?x%^c%J(olfz^!tQ8Ux5F6s-QO~=Kx ztpppda5t@c7Ckl6USvL6AN^}P@mW@UEq$X6B6_LnFx~-_-rBIu_DOTv*t7p<#8%8`a+x4R5nu*e^Via>7}nZwB)JTByP_6 z>7pnDw;Dol{b*<=4_G1-K%)5M1Q+u^FAnqB{Ad=2$xi3#bPwvz0t=Wqx`v8I-Ee?Y zI26eu0{Ly`9$;RkJtX0}aNK{GI(mz-#toUiDZ5t@u&{#saK73)?*|#8C1$%Cs-}&a zcp%~rI?-TdOQ%&^r`KiK7gh+6=f_Z*1mi*9#}_zn;sYD2*K7g@8uqqbFE;J=qlv^k>M{hvw<8SPEvV?tS$2cnOCO$J5MwVJ(*q5tD4E zs|Ix>f5)tv2Dt$NPS;}_%AD)a_!p2cm;3s`?e}^r=M^NDDZ1bMvp1M0b^O%KiC@HU zrCDKC9NfxjZ4Ao<*9-&lrTcZ99xklq9ix<-VS`vW?`CBAQ10kDzA5>V9jb z-Bb9g*{Om!Qqf?t@oVQzCAF2>DIFmw)j;&Fa^~b3>TS)v#uEjzkpQddP%=+_DxM0X zKA1`S6R7WW9S)2r-lzbJ42<+6yQEqtZ}BN>dG?joS<$^8@Y%nDzXPPwC6~3g0{!-q z#e+O8}o;|79_wZW5nP9Wn*L(ev5exbx`|k`dDgm=jOX?&ZG-|bTKBbmC>yu@d?g>pxc5$7Rq~)p z^N{;{m((3h?1W{w!)*o-u;k2(b5Z|5tKo!{IO%2V!;9T>>V6Gw8SW_L9vIyS8E zEANz3p{?yCy3;&U6y;7Et(!yiuezh=wFpT6tY=Lc;pFshP-r zeryYP2R`+*2hrKEr>l^6oR3jqRbR1GW%tD}QR$j$w(&`Hke&eP(<*0t*b>N33!kR9 z$8fcn%kn~-SttL;w1H4fXls36x`9yiVjX@xS)kM2)UXAQ!cS zorg_Av!AH4(vvd-`DNvrR88{m_c=0x{LBTKNHvqkxg8RiS#I>HPFEfisRKJb3Itt3 zGwOOe91@aohwak0wzF>k2(0FezF?4ESI#h$ZoK~U5{emFXa!U07ApH9GoM43X&K+w zVNK3s;+Kr}+JG%dc|f3h_K+di21l+%6zM!>&O2WvBZIdTzOhbJ>u*ark|Nebjr2J# z^p#F&-g`%~6ztOWNLs00uy0O))d2I|A9M!tyIWTE2~8iU&$flhYTVB}s#j_FB}Npx z?}5aGeQiS(O7YroUl(P@T+?8ZTc#^3*5&L-TCeoe0j_()hs!HmB|1Br*wfWcnq#DQ zhplBt>$MX$>se9E6HSU-P)uNBhZU0XJ6>_3W4j;&TVghgson98gDnK;ug7}JbFYZc zzsH6Y?D{hrDPLE+@j{e2BvoU54(PCod0>~yJYcaN&sME7*mM%WomV2_+Fp~;E;p8u z?ulFw2_;wZLR-gGo~`p81FcnJek32T+*%DGK&P5~2EiM*Ccvz!ImAd70S19X8LJ|7Fct1{gY4=Kf7Y> zZY2%F1YFe17F8qMmo8zxiBav9?&2pls^!w`ZdQDu0q;4d8s%aHJ(gV__)trOK;KJ7 znIDn9+FF_fD(T6!OUnvXSD?)W;9H%j5i#47P|uatwaB1p0XI_~$qidn6sZkJvgg(f zgOYc=pSfQvcIFFbku@>-abJLm0X*Y(MQ8F2XBBnAKBkuW{)|}!l_!RQk*u|g96ZIG zIqBxs7c1|cD0#<}p-%S4+rIG|U8JnSX>*pPJ4N0A-*6A2wGBKFeMhj*i#}7^ZvAwNBQTIIVCsAw@adb{Z+sRZjBgk{eiVtl=DOJsICO zz#)h@c7$x1svUB#rPz3vwLo}#Hk3FyA3pXk;6&<#G){|fd3*x#!Q(~;B>=0fVg$EQ zmIjOg?{W&mN*VZ#?!Fc;`_(-EAYHnLcb9;K20CgNOPb?>kCjN{k0MBx^hBsgj}cd_ zXP4v-T(BQ&+9K=De%7IIi^`7u@v7~Ot@GXbRV7D41x(Zv_yNpbAUS?lS3`jk3O#RA zkc``J*WYxV97u-go#6OZWgh_okwRQ;HH!eQ8h6U2q{b*pl@bKX>MK4jA-Un24w&MYpaH|6rd$d)^pl&h!on_dP zk*Hu`@#EGZzAS^UlwnULZ-Bt6ojas(ZHZ!rGN!2!ue?3P#12iftf(1^d#<8w^E0

Wp_0352w3jbme-P8_8671@GLg49bs~VweOZ`z@1g%@C;L^+- z;bZg$_{N!?Q7n&0X^V=dqE5ZJ&?De@#1FLD4rnycr}24rotv!01&?eFe)4Xcc3r~G z%SHep|J$<91#=9xD5fF=0eFE%X<;)I1cA);PL%oY+WPWmpbA&fgFSe*Q)bZp{$ZI-58(!pw)~)q#Wbq3+`_+jq5g*kdS)Q z3hs@adj3<@=z#`N^Sf*2l}&I@s(2eo1qRdDvU0CTI{sOo2l`BL`EP$3K)EZMz(N#0y!&mYL$I$a7@|5b|@(M zCR3Ml(~ixF>Z#J3(i#xd*#`mv`*sl_ zR+}uFxYF&D)LCcf*Ah$p6Hul=w6y@dSeU4>k8TY^ZPh!Q56b<* zWWc*dH_T4yy@TP1Rh1m5d(5Zr=i>fnkWM)Nbr+x%U9Mg^Puet3dx@PmS_uWJrzW-N zIESj5=B9Jsfq47hS^#B`A2(fs;#xp3qqdNh_9dPAa(m&!muRj{IZ_3hu8FP&{YRx+ zRraWhnSFUsx1Q#~;}OkFSXZ?6qwH}?!3YIXq%YKe(uNP$+pt(7^LTRdy=vNZZfY>- zXI-HjhX~IHka%^K)#)NJUfucvo-~is{Lmdu`{f~_sEeBt+WX9AL_GEB-Rh#+fvMiPLso5w8e% zQlTOspiMVlFyo(5#y;3z10Onj%q_NXBo<|=yFG;B&r}^!vUlSZgZ$uKgzD=!p22Gy zZ?aO#K=We(O~<`&4}?ymC+{(ft;1*NUo}D)wM{*Pw&Sdqn8FThcP@eGm;mnLoyjGq zE7BW*9#-1CY+W(Y<>kqhA0DqMJI@sdwB_PB;CSA1(;kv;NeKZurIvB0-~`9b`RSek z2ly;)j$DC;V|U|`vYxlWyjF8HVNl@~@e4@LQsAbcQEX1? z3-vkP_pZbFenYcd-iTE!_p78r5!}KSq~1Y!_K{zx4HlweP;FqRbbE3KU3IW3m5^n! zM+s0UIDUhdy7t6(Bd4r_pB40eP7oByVMfHOl;GS>j(GwTGhm&%EWZW94apLlP)}Ld zAp5*&J@~_x*;?AQ{zaQU3tj)>6X>$WWJP@%L3I2Z+)8gUJ;<-XpM+yqi$jC#ud3ax znQqPwryD6=!VhK`T@a`(_n>0*kabiv4B5&9qBNv5ET&HM8M5M5ZH>$BgIj zQ?RVS>d*uIJJ^FB=oEL0?p5%;qWy9Z{DKPeE51>K7ME#`X4k^-$XVsdDO%u=2k?yO zAD4#nTp&M|h9@}gN&;O3-}8rS_(p~2-m^f=EY0AGn;ZQ&6v*!tlLDKaZU@un$?oeH z={eGif&wRDscTG=owi@1`2c@DljMpq@xnSdQl!z#=C=RxetpXjEQ9T6jLBXgLu9Tj z4uD?1+}rN7RBGf#NR5urAgtdXf`RPQEmCY7rs}GrzddTS%qa2q4kNR!oge?oxM$S* zS#;3n6nLbH0StDO>fywGcnqd%`ytu_A-W5T+TG@Jz!P6z^(e}Oi?j<;xNRjQob3 zbA(UwWcyLA^^QX4k#%=aZBlblKecKd?8c+EjRINIYLtm~fK+)+)&`#MZUAO>KP{4jV<^m(#A)?Y)ygI@3uo0^%JVm<|uNpOVKhg&@f~kB1B0e^1S$Co>NZX6Y zy3Qk0rqtW*=R&dTqwp*he%D3IRh0W2IllHE@P1i0qvqF2Ae$++!0?ITJLyB#JOC0y zz=+=YT!?&RAqdAG@Sc_L8_>-^s&{)2z^y-pIo-a&q{={BJE4*ReWEvHvlYJ|sTlXN zTLu3-*Dc3ra;;;*uFsLVAGF*+W9f3}@c{XCMGDD?iFH_f{Q!XL-IR;Zp#2wk?-AD} zRjxDaz14|?sg^H6OD%*jsGAB2Q?@#2>_ocLza!lbN_GbVRO&I_43@qD=mM=-e2-`f zh7&?=(l)+P^ZrJVt|)IYk4)nq19Wm&Ya;8|Fd!*XTn}X6f9P6n`T#QGqlBZ6#7SK- zl9(cQ$W5b$CiCx=qp6`Mp8@kHI6A!ZbcgnN^BkLHk4|qXBZUIlWhk?+8#212{Q}F` zUtpAd_a0ad+KMductiCl`_`WA%McVLgXY-*z)Lvec4|E!+L>(j|( z>ziU+hXMf^j&Qa@|4wk@x_M>l_J+?V+>>of;KcGg`l!T1g#%R=X#_8~=oQ^QJT-0N z@eKM~giT0L$U7YPNRy{7J)MNezUMIFkBN@oe)no9fzLAkj5pGlzmVGFGC7GyK>_6V zw-JU_ulIYGR6v&V==}bT?WJne69`_LFe#$!@7dJvc5)1(8o%}X@>wy1^eE@(4DYE~ z>+y~bg9ubq7|^SCb6ufDy3kpVGybw13e)zJqJ;8Cr`AuzoKD0A$hJe$fTAP~3c#9OiB zR3oZ>+UNP%Ae+x1tc&BMHI0{}Hz|IR2_`kWM%BZ!{cz0*bTdZQ-X4}B$7%Mx=T2KO zo}Z9g&}BT{_tew&$Q#xbQEce^`jo=64d%87lW&i6QM3#ozp{93b85VxHo}5QjlI>G zPL`zwF7v^cB{BIZ9gZwr{|;VGn;F}g!VAjj>@z#%1?j1tE|DqC)hGM5L;rOddHKie z3b|?K!_(*`u{(tx;t#vHu)c0zpJMl;8+qA{K>}>YLiNq8x)r_c8~ngZ_JockAB>57 z4~^x{V}dJ}OEcQ0$R^9%2$9}KKp|~RadQwc0md^LBdFi#h7#1hIk+*kk||D@ZTs2k zdvy;ofDlV6M9=R6Rj|}8qE(IstMG=cU;n}a;x-FLo9JHCiIbHLr-v$^Kx(H1F+DcT za|-HY`wF3?^<(Q^Svj~4HeOg@L=fZ340qfreu)W}tzrM$@|Q_J!3(y=PVgP-F>qQvBEV)>f3>JCFeas0f~Le517v`7KJGQz%f|wy20+@^$oN&dFvWI zZ=`FQ@WC^BnQH?-QSYv~ig0FzL*jRT;xCYN37|1m&tf1@;+N>ghU^Q5DG;6^`82jl zNECp=>5%+O2wMuY&iDkW?-zU6k{S2i zOF>__zgTM<``t&nhe;G1T&L0uv}@_qX%z7TDeCE5(p&JnjsZoT!w5!ckSQLG>aF>@fG5pbP{39~>L|IatxG+RJ3KhKo?L14PE zi^n_IbQp+L>`|sZHf9J<1e;R+aXo5z>p!FbE65gfEZL;KO%TTGgkTwa9t1crI51cR z=f?#`BgTd{2kSzr;2WtG@$)OnUxon*%U<%^=64`uS#BqIZ@bB}z@4h|O5Z1`)5nVpDjNag+{U!2F2l)jo5bHYiiw>plsE)y z0O^!4{t`bc-+{G+#>;QM@42)J!X2`Z@T4zQCaTGitEvO8p@{?}65*NN#`+Df;;ox{ z^3c9joLPcn=gcY*Kd8U~uvy2Rbb7)q$sJ%P9uOhGN#*5zXjy2U32w>?NlRZh8n6$q zXo_h5o^HCU;ZIB?NYtHQM+|7y&=^pw1^NnFcnC?%FKlzO}(DYuj?1t z$LPsXPO-L8Tb~d(1Oll9MXf5w2AHh;81g0uQp|j`!#eXz@;0c}S?fyH1PD-+%0W8@ zqd|Qf2Tnck0di$RLl;z1+^V{qi^Z$(8)~MyR>Cd~zaB<9B5a(X`5^jS&4dt|T)QTz zg;qu7frYGq{ki}(tQP}-P^PI3J%=e2$MQ*2&8DnoifEst=v!AcxJKr0jl-l#YcZ@Z zx$9a)=Cp!KclXvjA>6?L@$06Vi&B#=Mq}(1$1X9*AIbYDw|mtGzxkPm>+z~a z+#5&|->59^V@k_eUGO@YFhO>9Kwk?5*`1618c*W{*)bK#j`C9w$RB=a2Q8_1;{Q8n1^06()_u^c;W{4g2f84Kcode_(b|jr0lc zOy0#v*83|;K2xmbFw-;YsYVV$SgD@eQd|q9=ZM!^4+im>?XZb}-Ez?av7#RL>wcE;@i=%vVd2;VuARYxKnjt^fxjL3MJIasGA=lFlZso&F|`i4X(P2mHnM<- zu@S?m-2XA+)Djp77Q^*j^?{f5=>$9z-AFt@ZJD{&(8v_jfm_S(NK{)RRjOR;jIu?- zBa##UYDDUYzn2et4KRF%D{KoPTSZja00@>I4d;^r2m;Ifwm`%C#KNgo=Petl`EY?5 z8fX!MtY%1FzL(;?1Y01Hxbv`Qj^S)RAsO;F*^82@++ndsCzi#UYmgk@p)7cGqZu4| z@fu3lFpA^V0rjEahWg#B4f!71jHm$|j+p(mBc7>PXa=0=l_;t|3juyW;AWJ5_vMW!L*FQGCRXkM)FgU(u@cM@!rVoyznKi z>I{fLSN_F9qG^BDI$VJHQ609_!JKF!q@P5F6Xvzo^5M;A1^euxK27=hnaK0ha-P?g zhMPG?DbSKX)_lIs_Ja%H2rGiVYUY{bp$)Y@Zs;ikAnY`(N3Et_N+>UO(>f48&*}*0*$g}(|~2MdSvjr+2d~o9 z>k>DL{gx(eox?VR18{e=aXZ1P=|?v>{=$YK&#zxf3q-5L2rlJ^ZLuwEIoXZhsz-qR zMv-jM&`q51wuemvjm;OeL|X378nMbbOG#qp`WC{Sj@*=6r8iXhYgK$;S-1?Gj ztR;{B9hY-RBY1_mT&L`zqdH$L)~NctxLzw*Jp-6MKfE=8X}HM>`>xIhd+u0p{9knf zcuHJBL!-6gsPMcfDe= ztS11*TLCK}A;utD?z$3aYjL4MwI9g{zY?rN1VSiD+1S6L_|g{1AZJ?UHw(&{EWS0TgdRb+UJhj)NEl#jJq*$U`#8^!kU`2JLr zCPKZMNPVMB{#Wmw9|k${1I~oAfwCVpax_?QU`6zb8q-U~met^+dnpOcE)c$&!UzY_ z8rll%Kyl+0{F>GA0{^>Ik^tJL@F7#eHXj8Q!XFYs0o8+nz0^_@J>L24q%~0+F7!gf zWqw{+eo;hKU7*HKQjE|qXaiMTT+kz9#K?o;A|!5YO?oW<&j{(%#oVq5v*Z5mWXF_u zrsHJC#V%sxJgq_PRMSEcY#*e5fwC7>s5IY#l0bPKqvgjJ+XK3(6R?@N#bc;rMMM7& zbFQ?H`QL3tB2HX%|2`AQ?exAonqgUws`HVf zijOX;B=qS=6CZP~Nbs0Hm{WZy;QcjVk1d60t^JMTIPp^WL+H-)jKR>f#oB)T0cn)t z=VSynwi_i63)pylN>^8b?Ukx-OH~BD)2-W_{q@%a#pd|~l%P;JW4Tt@?}IS=X?Dr) z@A^l!7G+^rJ3WOn6r(%Q9P6R`uxO8{x<~F1nLko#|1_w}=*+2J?9x3vhuHJf^zB(O zTJTf8-ObigK$v^+=sFa?gRkX9h4H>1r_EgzvGDV-c?xgZ-*sY(PuDGSmduhYSezyU+Qc@s^wOAZ&o`!aU4-=_uX@5k%A|x zC;6anqI0V`r;D={+c;iSj}>p2kDqtOd0b1bH|Doy<36>*>1eKScd7S;X4U?t<1%=ImCY zO4l<{Eih>e_^G%o%u|NRToIzt2Vo;jd$o_!O?F1^g8PlvH|E4#a}Qk6?ZR3FV|hy* zC1{nK_v06HYenl&Hj-}J=PTRn5%#OMY~J51M8wfXwTBxjw%24N>z=k-F9==^_^=*t z9F1xUa75%a=YX%Ql+!L<_5()wNIA^wVHNimYp$S&cAhxe26C2Q471tCp*uP03(8I2b5S{IgALl`_> zE+Zdz&r>LZ2sFB{7q`mqSuCrvQErUrI|cqq~X^su8+*c&t|RLVH4SAHQ=1J$TNr@i~1 z?avSK+_r}rajo=-5`@t52uyBjtGFUTx>N0Ku2ptFkAFqqr#}}IluDN+BQNE*W7Zz5 zc^VAu6uBl@YJR4zeUwK|xjt>_aE6}16&X5?T&Xg7ojjSNK7Wk(SWF>^>)f4Isd5B; z)dKIhjX_Nlj1M&B7j>-ZR5CqcPFWfsFtZ#Vz8Mn4G6z0YPNBSsO!FX?5} z!mpTZBJ)@?C(K95o36A>Fz;pjH4V(WVmQuqb5IKt3CHVm#h)Hn(w||0jVclLPE)RF zJnpYw3c75*at29A3v=d`duOm(#9i+97dS)9R2|$x$^$d#yLWKY`x$(AH@r;t@i1Jq zx#8{gg71GLh7j@gvS*kwI~?SVW&3`U%TMZc=fJ93PwwvJ=X-rr zulzyFXJ6amz<#u$+krNQwii4g^LlmmqDW!Gptkx(@Yu+sf2$Tv#AoxK(gZ*Cmn2ai zuGJ@c30W{=M>NB%^Iy>huQ+lF7qJ;hl2}Nvk^iZbG2QWSJ<%^4sqcZUCdw4Q1`;e2 zFqIK*#DV+O5~$);^=va#N>iV#*IUVW?8Wv5er!PXp`pZ^1a8<|rG7$ZUcxrWLLcd& zWuWbpE_xLbeJEJX4Bv+BN^`E-FsZpUNbS+PpaNO zMZwJO;mnclKJCqh#O~8AF!3#g?t~SD3c)2`oA#v_x5^o<^G}+vX;J3<; z-S6cQpl*d(e=is^MO9UV&;y@W?|U)Q)X)39T#GLxNfMdbrL-<7Y67v0JogfVQ2n^m zEC}3^LA)5R#=)l-baM_qvL0<`eXw`mkfG?{z@75pJ??1M zCgSllnT~Zo5~ecCs2_l7lSyj589~@uD)q;2JqX@z{FN!W_ssqsGX-v60Xz#XL8NJ} zJk5D3E76KHudH1~{n!DvBsx7-*M=F2*$c-cP_M`5Z?H~0ElO*F>Et5)8>~>2JYZ%% zB`e+qpHt|d><1l!+TmZb2Nv3}f5V`vhV6z9I}8D2kHqJ@srr?kEH3=pC$#_WWEv{C z^uduv0%zze+h-RXa3?y;e016?B+D--4UoMLK*Y-{JPT42z_~)f6ny8HPX3c4&n#E9 zMo`&!;YG4Rsq2m~3@x-osVP%H4GfRH+uv-G z7%&rz0r~~yoyS2i=-|1=Vo4xL)CqylTPh|(5j%fOQSplDeH|eKJ8}Bd!s4nbN{5EJ z)YQz^=u>ME2%a-K&LS{Qxe!xde%S1i$7^GsWj|fZ)$;l!@%t&?;NMmVFdP_57}>Hw z$B^6V*Ui})GLX@Aj3DzM=zze?=fOI?=;|s+dCg0 zY<1cFBXB&uYjIjTi=DzgMJE4Fy>>#!X>BwEj*=b047Fy-2S~f)yQ210&8=PPRI}>? zW!(I0^Mimm+0C#0&vM+y<4+)tx3Fly^x%;7bJKljeupo140qZ-AxonZFe&bpSfcqV zsF-&Pq+mM*F60+iq5RU|DPvHoZrih4%gkHG67)R{bC)bJiT-EKM;%vkUk>RFT9 zj|>>WMY;tl1PC&8Le$%3NqXQoM=B_8=33!&z7Bsg-t>cnNnd|w7gW$ydanlk3P&D; z_dUgKcw83rw)&Nlz7;q|2b-Tu;z7n!jWvS5lRp=@X&vHJemHX|-HY z(NT#jx|i@9T~qt8CMDI!Y_lJ$DoPg7Mm3_#)XlTY1_e6`RDr#Nh`Fh8EAQC%SR`oy^^ZxCs^g$ofp0 zxMJFVUOC&*8ByF@QF=ToA?`Z3GqGZ}FH{$n*@W&%lZYd+ zvV{dbTBLJAvr&~jLNLSi`eX0R_bmYgB>^+YY*0LrQ0j)yCq44O+cT=pdIsBSQrqgR z{eJW&OPMDO&k-rFTM?__y{Hj`q`2!e<89pM3c|G;rT3}%$%jd=Ga9Bs-i7s&ln~-D z>h}6~()B&5jYUJGkWN;Kq?12hkeN!r;J0>|(^YFe$);9U!^87QmimJ8Ri}@_IY5iS zuueLvifG)KIqkZRixq7KP6TF}=gHhpR<=bR**{3o>)wj!=$muRy_=Kp_cpn8led0d z8GsewcjvRTyZvBQzUR)$>&aE|csLxA@f@$V_x-fE&BV>dw_(I_YIXt<+L5m9>ZXr; zmYex@9=sFpMkg4A_lVSC>vj*UR;ZPQtdhU-gtBuF zI!`Pvb2P-G<)!u$N9yQW-W1IgN`eLbLti8Gr-yl(sW3wRDjnC2-LNrYelJNe?_yTF zu97Ab^(uow;N<8EizR@iIZmRx_IsKoIRa?Y&&9)Kk0x%LjC=?aSB{{DFj39w%!T&e0JbPr1`|FF1v+6%;%-u}#wWfvrh;?X3{CAzLU^3>o}8x-+spedN}i?`%k@cO zZ7KHnTCz^WI4!^k{^5q3d^)x(lqBPb!$vnn;Cr<$M|~KHrIe@pm%hY|dvjKB(RP^x z`uLh3M0lGJ(wb$tdc?l_JiAGk?`5paJ+I5=H<2VTRC0}CV!bIv05*Aq=*r->T#3kE zI%Mpw$hS!IJ>zqM2UH5AwT#{u0?D-ZoI~MB7YdrKq9bxn&LJP2jQb+&T zEoec%-k>Ct>^>LFdmEQ8iq=kzg=UvZwzfr_$0U#C#?Vo7js~EA)uhB*^Jf0zj9!E;>JlXI!UWyfQ~x6$LjLIl1UR>Xc{yuL+J(lOucXKso{(N_?BwYuG? z;mH1qPeI9|z4+4pYG5@O16)I|d=QV0H(OBJU`uX_>VGu%haLV>ij4h<;q1EF z(26}`_@pl4E;kH!l!*=2_*>FLo7r9=@=e`s~`U$ z*m57t-@|Q`V}KDuVP{@t8il-+o3(!UwpjL|f58hWX?pH63UNGcchJBlD04r?)3n{7 zrD4YXXKVJvcPq!Vg(b`Z=Y!)dmR%Vb#YR<(7I|oZTBApGHtfpGZAA_ zd3SN0yY5lG-&n~Y?m+H~O+3QlRQ08sgrVh@Q$i3ph@vnRTl@N>bh1+1kO)Hl@<-+O z%a@x!T1Gywhc8~*kF!{Ii6m6CJn>X~YU~@|jz2jR0xH1imhx>qp8&Kphq6GUK-zV3 zBpMPlKUZR}9v6|f=m)$W#h0QGb)-tsCRT7FfT68|*F&d0lX?wSc-6OoVAU+v3ag+3 zdxmfV%a`DFHf_Uc&K|wQ!+mUH8_wM@_ch(sGPfM=2g&iiS2cfQV;?(=k*ZW!sS@3Ea(#>EcOQ+{;AtV9d(bVSzRZk<5}h7 z*#s|9Sj)qxqNoO~T5(p@bu6yiI`w7^9=&9yJ<$4jH^p@f(kh3OX}3M+BPX0dKt<&{ zy8>xY!m`_7S=)Csf__l|hqh@L-+owCIi5Y&!!xp`R`-!U;k_#?Fbot6ib+mB$YZ10 zhR%Y>O%CL0j^+we#w^finoRjExt~1je=r`9$kdYgiF}f>F9obDcOUQXig$D}%+5d5 zKA%fne6AFY>Kyjcylt&|V_ijLeR^#c&McFMe9lw8J; z%x_*k#f7pKSEZLPr^8A@lhTCC*oo^k(TsIbZ7?KRq(EB1ipaGwPp|NX>qOfbPd_(& zFt=p5h454wsnr3yw0!!r3G10&vdCd+d6jxydiu@_^0pJ-J2)}~XjJy3sJ`5O#O;V9 z9YfOg=Dcm~UA@5G1ItyxhKA+2CD`xVj+^NjJRfHnTLznm^idmR44@~p9kX~J4hu7^ zSKQ5|yAe-5R|*)RQ?e|dvxQs~1o2w+P#z~sACbvT!k0`Q&zl$(z+CNPCCdZZfhsEZJ7N4QKMmg+}n!#rKRRJx1pIw51*G7ES}O!oYai)a8mZP zx6&e*VQOmcLEmfyapXey3lE~zddBAm5r5>wCIZl7!gV34aS5zPzbCF3*%o92$ozcb zO%=4+2JIJ?#JK@!=MzKH)+Q%HHgUWdowIp9zD2Isv0s^4q*c$xnEz@)8$Q=&F5a0q z&NH)awxHwZtfk=VfcTI3iJrxXTar*^y=)emEtt}|{YX4LqXuuj!S_>rnc+^p7YTC| zvaTY5@vZes2yQ);3};%`7x!qP2O9)Kt~?t-b6hVa8=-P5V*DnwWkEh3S3e3yhQf1N z4H<%^2y#eu$zzKaiihbHR>SVy>;zES&%Y`eBt$rM;`$pGls_kt6=b!$w~hj`+PQWJ z=ao;V%~FB07kz6%<-yY&Qm585ww3;`L6B#|CFkt6iM28`U!T*gQEKsHEoZz$Pe*_#0b>a(OGM_by{g$@q2=P# zkWBm9g&95yTsNNyWNv{|_fkVU^6@H}VXk$qp#ejZe*-v6XuKFY3mOL-5^AZeVADzZ z1rfrZ1k~j>%!&v+PoIMLZ=aZ7QZOo)bdkz7G-U=Pc1uxmyRGWi!6O; z$<02w^?J#Za!xgbkxka)6M4Z874H#uUUhdtjswViuRA7YBElJtPBN%eMW%M{KIS3ea1i{_oYIK^jh}$%F+YUSa z-jaqbN&Qexq3JJK?0!kX#i`E)-1ILBu;=*YUYI)fAGnk%6{!mP)G5bfw^Mu=Gk4L(5Sot=B$QB)W z=bp6$jLw=b?04}9k1l=v%z?AB$7=FgO}`&#F>f6W^yfF&jC$vw`|T|OSbc4Y6xXZk zhBES3+UXv={k2^|0LYzJTQtf^?4vF2vkMM?VpU zz*39A**W#kM)8|VrCR)z70|x$97s~!FJBNKqF@Q(QnAnvNFW3;o^#YJE12Z+$fwQu^ts>03BsG5Bs?NrPcx^6%S%$QD>jatumPy zzCKNO8e__H!|}y4`)s8p`d(dQu+WBQ@3(mqyyfjLZ2q6!k@|5S1)%B05!(LjddF=Y zbLVXpa=&RqWo>MtOz^!tS#Q1EV-kT-W-A5AKAr7C$ac?r=E17+OsWAm+@#@46 zZX>cN@6;;6s_!Zu$M)yb@i`&ZbyjcY(7~ww0e?J*1p=~9+=f)rSO@I^60>(A8tJW` z(JaI5EJn}a6Y+W=i_o)by+=QM>obu)^ffZ{`cI4%mQ$)}seq9Um)xP0wiJKm%3>I5 z>tu0dV<-Ujno6yb}mCu!qMk`g7+{|DxiyzS!k=_kB9CVeok>0>}K}%Wl0Rkw=C&7pKdPxx{fs z6|n`Y6l0pyTBp*43e&`wB2rsy&lYUci&lqI8_Pfys79{Gxk4U$flhu1A&)OL{!H{& zP12_AtAPjw;-)Mtt$ z*4@c?Yu_82YZPC-v8rBtA4;Hy^Ex?EYEjN}Bz1#EP_Zw?!x3+My4&JK~NRww;Pw#76^@raK^r@TP4B$nj(2j=TGq%&L^1C>RxUR6IU#15P5an~z z#jQDV4DjR~ZzaSc9(PoCfwk*B=-x0f$Q&G&A*FTJ|9>@P-PV<&Ag2n55*i5lH~HNhl< z_81X-)88&T5;=?Q8m)R*e$HiY14y(1w?^bUaOv`%Jzg@btn;kgX_e^M{tr`{Y3RV_ zJPL!7v$LpKyBric zIK>I(g&w}KwwVxu(#cG{HglwR%W%107qtzri+%hISX9i6osf@cbkLlZ?fUDqG|F`L zbF0DgE|JI0OYbi;PX?rObDC%>N4mmY;GdaNshsiKpvK%<-mgP-_#Y1Gnd8Uu$^CAt zQF4-sD(eUB=jq1t3Ei81&&9;<>L^LM^X&g_2&+wf?}f95KnXFL0g4VP-!)wmMS8r- zs;m!=N#52mvv4bv22@5KVV`osAMBIn=81GLqV*vSn8;!>=KS03>E$XTn;B8kckWy7 zkV|d&HSCvZzv`3w1xYP-ESfQP>{-8;C9JdU+EXs?)^);g{e7y5CJ>Q*^nn7ch?53dhkr}F6Xp+;CAvr%I?7d^i zoSWZRi{`dji0+B?M%t-a`4zd2S64jqH z)Vv2F8_>M$YRjQ-R$_oR*b)Gh_{*eCz9QKm9XpaaQSUl>NAcAWK zUR>gc$fcmDqImFyU-w}NS61q&2PYa-u@@&1s~MH$Lh(7j;HoD0Hfc!GNFnxVgWzlG zirP)AR}YKsmH`?@a=b@Q1>cg_k-1ql-B=34qt;J!GcI$?i0^&ln;7FF2+7z^Nbx>z z;;L*dLWjtP_s@m?o+Pe1@ei82_{*{dqfQg5)S)= zeA>z5nDWUCHT{;mG9F@6)mp>x8=&wm`CH2r7G&GDjeh2!9barMy^@S4>fS&U$+5lTp$wDaap3!w8 zNKMyxcn^V0f;%)xFyvk27Tw22fQc99&yZfRLCB~+5J$T1e{GqIH#P7Rg{64MRqW zKWK5#QZiADtIofnQ_hv8lBizcnUnEo275+V*$r(o0?vdf`h@+E{L|=w%$Fs{GohGav9d5@n}<>__5n?4G^H9ciJZ<3FF`QndXLi{Kv&fHloc<#~Lf!qN&id8GZW z_2AZzLD_<%wG!yZheg?!F3O!4U&PTuDd1-~f-2^sMr)(ieIMs3>IZsAX213QsKE^9 zkduktxho)Wm`f@!c9!=%iE18T**#-A^(Px_^e^ppm)@9EzQ|fac#ugS z6P;&uf$`|e8Y7eSu-G^+57fl+q)jeHT4YQ)=NLEXP=AL*LU5~{wy%szhVBI`jb7A<-RlM z-0-{`T5z%GI0Hw5SmaBX_xaEfF-j9F*E*Ymq;cSjm^OGR8MmL~oG>DLOcd6M zDnC7FAQ&5)3zHmR$GK6-C}s4cYis@ND{1XB5W6E4jJh}4nzeip!w4N_ zNg(~$4qik9p$Gfsmes5-(w)ibjLE!}fz8pEO31~BfN_}>caY@|0<%axRAp@g5HZd}?6Z(RxRnwA^fTT-*GsCbzVLLFt zBV;2o2AI>8uVZn)Ne8eQo7PSPZtw9RgziPYoWrn!!&uuxSj~B!Z>;Go9ki$HEd;1) zk0Y8^GfZpt7dH{L@|Bo;g8y>jk9arGqSP{hfsUbKJlj&6je^tYo1jMH`1MA6p6$jo zR{z~wG^lttbgX^DYhBe{l>}fXG6=;8J21e{)KMwwhiJ7}k@*zH=ZhMS(565Aev;Oo z-c^*_OM+d>qc(D5c3VYcHnbO}XovL}1z7Y}iP#7Hhn$KORD$Ki*6g0V_v`BQ68v_I z$Ff>R%s4nH&N**i<2r`5skKqB54D!abtaPf1)ZA!YJj>{ktGCfFP1SR0|BzuTO&G* zn<(?*t*r1*d9Dd<#SS4f;S$+$L7y!?jT+gw8QCy)WXBm*Q&2gHzKda-9VrL6qrM=8 zmc#KbN-7Oeb1r@ED^2_JBl5IP%6q`AZ|IO3Dq9_TL$%>m%9j;+kYcKjWZLC7Han#n zr?8T)WiWN}in4=|6JD@C054=poaKDpf3&_x0ZQXhC}YTkQ( zmbS&?-zS>7biyCJj$}IXuEo#a11Y@5MYijAe7zV+nZW&bAV1fl;S%-RaCh#qHQzs9 z1Sr#7i+gL~LVQ7XI0_0@!6|)w4Hd(RFonxAZoQsrfeDZTo7H5{3nnh&>6ZwS97;GY zWbl}atDVMJ<8~dhZS)UtZk32)ZHXs!W69AFvXNiZ@>X3DVH+MCn8wh*%EF@Msu`1Eo>y>Nq>li zi+dNj&=ZF5@|L1bBl_F3Q$#}D*Ae-*SN$!T6|IC7vvfzkI#-TPUi3tcMo?&fo$i9H zpO!~0AFo}jc1*ZwX9(3s+k7&wlCAr2u!%<67&%qchPiq{)P7Zq4gH_bkR3JRdiz#5 zOYL!otT`kkB%6Wgq$C;~_tlFxYyj@CR2Dn>7+@ceX~9V@8U7l*E!^5NxUEQzmm;$~ zTe&vT-}~K@d0a_R_{w1hWM8_h6H+R?#4EJ$0%b(4j|Z&>S?RHZk9D?784B|%u*v*l z5|Bxzj5eB0tx7%Ci*voS#WF_aG}(w$)rK)A`PZ^?kebKeN z>PP7b(jP~5ARMA!$mF~bV9wcMctNhT$M7(O$}0yY5J?d}Rbi8{IlC`C^O&W2F>io{ z_h~2VWudT$QbN4GAM@1|`F$Hg(o?p0zSK-w=p9$>mwZY2jTvdMyqZRwF)V~&OYsK~ zs@=QQI}~E=3WJ)idt(LqcxeF^US69?OnN(~A~$|eNMnsR*0RNH5und9cY&RcbZWqB z;sJx;s+s)@RLwl5vBQFvcYRHej@Rb;pR`tmb|_UHl*&s90iBQpj#mn7QAGV05g z?c1}<_qz%~$j*)DG%~g8{aoV%C*`v5wkX!J!d2PCcw^YzH7rDkImjb5nzFM^LQB^3 znB7VeVdvY9Y~ht#BYz$Y)Hzl#7B%ZiH!I|ISdke!F}4-VGdK7U3iHrcG+>6#?R$7f z8&m~f{gg)H3IAe<GloBCKTKG><;^2VFQt3W>*8w%hzBcCI%HX!>@3007n0 zu7oKRRHyTw(YV7*==xA@TF(rfEkHvt)M1i(CWqpxf1cijWGy*>(_Z=EDQNm2a34_l z=phh5@*9Jf5gRET^Na4{Ce1bJMhy@#lX`L-;#Uv4?B_X+^6iVHnBTwLEPkbraZnZ^ zhA$i{>6q&s+hR{+%c&3|I8z&NW$`hV&N{>0oQt(yQw>ohHU!kP2_R}_W5VXQmPGY( z^cE-@fS(W&-SbyF@;?PT*Yw3|>)#uVq0nJmqxfzsn~iQ3jqfY)ir}aN#dG8tw z301Y6JzL?(6rEK`cv2(L$94NtgS)(PkhpqKH{k=-NI!99F98YFpX-i(<_mKuM z)-8G*+|pm+$GBWGkO6NeZHL5H+yFDwWk40a_oPE5ZgEmQ9Zz1k9A6_p{aj#5-w>8i z0}etz&ou3}O=7F{q(O|B=gq|7N_O8~p7ry8P3!B!SOZuZB-Ve)5KIIzdcO|x>5y=(><#COb6N$EAD zv2$56*b!367-A0BsjCywPffm|UL26Ujy65OtOFz~<@d=aoHJ^|{Q&D3(ol5T8?Pd= z*{&^T-(^CT?`tA40@wvb&m6;}0iBm#zd*Z*H^%GT@-?8Ch$7 za=PrEVi3}Begj1iVIhnj%JmdUJ3pc-tbkHU+}yZ!+j9*^MgYcsFv8?~+>DAmz%Y9~ zNU{tcKki5G34c5HH(uWlP zHPiKDm-8<#L&%?i83J}N%#;Pd)?=QlyI^5z^pFIqEX5@CBd4}6z5Zj19TYjYg#m%A z1gl@_yYDE)b=4ISxg?05uvl6hG+2z&r=Ho?y~x;iqvbAZ2*haCbsbj_CO7qX@-F0% zY#=v?+|)%sV-)K4zGV&nLbhA+8k^mJ(WVP8qniq6j+E|}$?bXWEMu`6&<${n4~hxU zE2XjGc;|ru*8@%yU=Jj3sI5>LtMSwNXJ>Fd@Prw7vyY9)E^$o5=Ye5yV)vsmYU+(70253gZAY z;0_E~?Jcm!;aAT*(QiBp1AI5;QtE|vt_HXI%quiRh%qoVWH{&!w-S~VI9P@>V&0Ph z9s|h$uY7YzYniX4W%iM}`m~?2BG)FndEZ@YL;h8DPuO`)a@ww>CcVl10*%zUJWO`= zr!8Gew9wK=I_c}oF2L0Y-Bco*x4pS-^<9oH)^q2Eml*nB&rm}9ia*se^(t}~ zJ{d?qo(!1Rk1PX_!o1K_xOI0T7TY>$FQ_3l?vNb1#tw+0Uy~SVo=Z15-N_9P>Ga&G1gz7@^?{(lVv9dsn^gAv6`A z7*m2B7oTk0A^0SstgzE1eD^>yqJEwnFjUzr+M(warwQPpH`b*9!7FIFc8u;ftP*(RQg1&u2# zpFo7J{5+8nZZjw(SUxG_!U(XwiI1ZT5!`X3M&|_XK>7wG_#;1?nv1Zz^Ypv36LKKL zCTn*pTZL0|G+i|6vc*oV&teMX6xi8kpg!2jT{RW9Y&qLb6fjf=LDY&itCa8Bt$O5t zvc(z}HEK+w0UQIE#*KUY!0^pJciGW?za>C@ZTe(%to1`oIO%aHnZm-IDt~hF8@YKE zRWTp#ce|YnD(SJ2F}q`v^@L|_s*r~4H4!XZ1q#{>*CneHrr9uNnr|)Zd62*H?FYcY zE#35B_RrN6;3@(boxJx9>Bd?TQ9N`*Oz1I`RP-S$Rj%zB2XDzu%sH*1T$k9W(7DEk zcD*npmu%ov#K${J5D2=d&e=FkTJJMKykoe43NB=k;!bld>T@G?*}A~7$fNNI#?{HCJ!C^Q1rfW$uvYCd@x|;50Pn+28cl8 zVbpj%@gpgVW&bS47C-fkdIiyzjT7wK1n%?giW;_aJ(_kweFZA3klQ21(V9sjTmm^1 z{an<-g`h&)txLy(ux6c}?26D&q<$%~j@n*JyfG-s8f(c7h-nF|1^b>Yes9wy6s$N$ z=cm+!!!pJ!IjtOcme!*}d68dXQL!q0(VC^sVWFW%9G%v4Mvf2S)*8mgay7^^Mm9%t zgtK%MLs|ENzr{=jokw}UCWhd+0F*W)y;sM{#cz=mNAoRJgg_2K>RgruKF>9z|Q}2zf%eS-B%3o88Ym)j_DaatRFf6W^z1k4$I`DdY@#H z{qh9%M(P~n#M<{6AUim9uH$vphIN3c-w|e5!{-&NlrJbG)TbrYe*!l;wi)DmL2)(% zQ2(VJ=G#EJydF0aPqC3NMFM80Wm|A7v>UcPB33in>0dTS+?(w!(b~59>&q>BTnd^N zJlcM!Z8G*1X|zyM4=jWV(gpxZAQa;5fu}2DP<>q*=!zY(<4*qCRRUX+%(B%i8Wx?> zf7fP|Hn4K*Rk~zvZY3{r+)q*~0rhKtw=F);6en!@o+J~!ZNQiPMNxH``3djYDKYi zS_K*hwCDcC&Ffy@dj>&~QX1|<{oXT4xZPD|gbfj{XCijPxO#(_l|lp^Fn{ELogjbr z*ncW-xwZL@ItC+Q`I*y{%cQPx!Ke=kc7(tCQOZ&^Iv#x8-DANKVtZL(X#c7{qqXwmN)3u!9Z1jg#Ok)3ElG z!*dsHJAf4S-#5ByCo;SEi zA?bsa4-zK{fPY=^R8q=8`fxNn3$OY5F{}jK@HY6OGyFt>=BXKwjyFie&re`h5?pSa8*wCeOx|^ zH^s_lk{(5Cd_$2Dx>m}&F8~Q>anf&u*or4Nc+o`O`wZu9ZH_}@rtf$b#Y9D=w?B=g z6y0$xK06wv&Ln9`3r zBJZmcU-?zW@fJp42JI=!v<{az*5t2jb^>-@f>qNq5ppIx6iC)6=M&T$2>xh0r#Z(X z#L4m+uUl8}f-s7@G8A^o+)YB3eFYlAj38W)lcN~;kksx{K7&&fs9TC@cOM@<$X36p z64PL9U|S9@@#~W3l%-iYTkMQo-=Xo==#SsJ9NGp9^Ok!b^^yaAqt`{RcU;Aq0{*h; z%D5Tc%Qju;YirZ|In19PIYo!nu;PDuglCasePk_0L5i$P$z2qI^^2lRAH;MVEy`yG zjCvV>kx<0GS#xQC!Pt!?8I*9}(mQYB%&ocA)Pu!kf=mh#<*1(r__pSm^}CvOnn<_a zgvm6gOx$ol{n+wBBa+1uA^TKwtS5XO@XXkBSEBHE5TZR#12Q)O+S#Sq{G6})@=bCM zKzyUB<{Vv`>4g&Umo1jk$XAxI;ti;@-E1bp2+MO!EH{7#&r*zx1OCq zm`>W+2_CP0u``~>{+0?wFGXt|Wc(%KM?d>LZ6x{m6j_IPuIdiA=`sdm<4-stW)EKw z!1Xk8@y?gqP>+7Ek5|2Slp+w;u|BAT7LjmyBNp1W5Qc7VasejT-F>xaS3-r*_Uoz+ zXUXrE7+fZ-Y*4`E4V4;YK!00TlOCNCR-h}(z94`Dg0P|?}|M4IjcXPS=cw7K%yV_3ve#opS1X)-KJSu zIYuSA^wfX`ZYQ<4d(2(23vc$(0FR^pLRlLG8BQ(R*)2y=rjA&pRaQ#`vI4)pt90EV zDCyC)GTTpabp{7I_RHxefk5U~G+(TI7Qo;O==o%)vMC@twY;=4hQ-4+1?8z(pLrAY zmFI&~>3!EebO`HWi{&?E#`WXkM!6gGUs-`hVDuqmtGWL zU0_di=n-e8X8Eb0^Cpo)yPymva%&Ew@U))zD}!&tqZCA=GA~*{K^i$RCxfaPQ4Fw) zr`Ag{h|q>DgGm%sF$L98v+c?)1zT9qaUr^3X@k0EePB-}b$H%H|6yzvy)6NtMSu^@ zCgXCY)*OD_Tc`BC@GLsU)F%Vz{YR6~fo+k?&uK_FwjWCC2M&$*X}VOte$B+fK>q~U zaWvH8xCK&0!})r_0&}8}(U&UL#cI*#u z{E)tcsnL>aE`t{DTrW|A?V*lCIH*OBRI_TfC>`89WmcSbSH=|Gy(c!L$QaV?ftA%1PC!k^u8j1 z7B0LK&o{}mb}xOvA8?_B%T%uy!yOpa6*{R)6r-ch+4@~iVwa0oK$V)wMzBACiMsUz zuw_yD8Y=PJ%S-QwPRz_b83JY;zzAE+H6fK+y>fhKMvs`@2VSl)6UmnIqrgkCD{bka zl{tA91~h6=T1Ex2#Z^TS$JUMyRz0Tlmhm&*1*l{_aTC1etFTD#5iygY1haxZAir56t5AsAxfB`ujsDYZ%n0q8FvXrJql&(Pln+Nsy}985s?0LNc2I&E^}Xao4wd+9~5 z3&xGGfgV!*e=xsQe5s8*i?Qy*3Cyha^aGSG34R3u8qsizRUO*+X_U$I5}g%n(O#K( z57ckFn*`oc$Ms0oV+cFs7TAtkDCVuQio2Vd06yaEh6%rwiNA2ZK25F8`i3D8@H++q z?~+oxXqo61f+eG(4Z0hz3zk;{<i~YSo;jifoK5z zRpm<^6~k&707qZ|wW5tkD=4oChF>_8^F#L+(sk=0xBBA|QaR%c|Je$5dHOIvYhjy9 z&Vly5oXIOxwA^YM2d9(3=wOK2XJe^XXn{6R4BwN=3bB*9SCrX7pYk}5mU#oe=H8Or z1@4mLX&f#QGrWH1gYc~Meg3y|4GU<#dD6iziYB>v-|jq1UBKc`_C@g$!u@v*91Jpt zerpLrHIBgF`S4AU8c7y5l;^+$OHJb!yj(c($ao{bX}iUiIyub8F-YSO@{)=bb#+!E8Z$OE zxA-RQ^BA^#GC1=Ex2XgC(-GWw$J)lr0&AK5QL$1bf|xHQGm{Y=L0-N^^HV}Xf=n`t z|EN(UG2cB7d z0t}kr(nN}_NT-a7?{ayGPqG7v-R`y%2MN+;b}bv1K|pSJpm$UP5WPl&RCxeT!7FDg zedsTkq-*8ru*e+W02wyofVD;~&@Z!xLz;EsqaPeMkQw|5CoOu`xZZNL=YzX71$V1XRJb zNri>Wz79tCM*J2A#hMU59UKTXp~07@{@kw3i0!n(sYZ#p=fFK)SUdw1A!#>-P@VVr z`1m|NKBlgSFd+c0skKwO96YUBgG4Ye0aaT(ekpe5RT|6&?{RR5d7Q%9@=Hp-(jP;X zF#;7Q`gSks)jyx*islA~hF;uDB@S=fH7_+RE%p5r^8K8RpTbiR@fzlr4ZFBiC9k5Z z=!c^5-+fU?P!?9!;o)IvDy+b6Aq1@!2h-=ry9`;Z&|dOr6Tp7>W|^Ofb4?0}I!A|r zf%(xv^Y0?H{zOktSRj-N*{f482LaU=?2<=~Xyb6Vi$@JRSL~9UZgfd-Z5>zslUpSd(BUt-92stp;oSa6l1yfOIIod)8#_C@u?#-R zeEH71oz#buP955KDr)MJm39sCGcREYa#KX5N!=j8z)_Dz6Zskj1`lS7+Y~5}GQf#TRhSAalL#KfOt(HS0U>oj2NUr6(0kavI-mv2 z_aDELfW%P1lIXqyq7nbzpfeHn*ZmfO{riA|k`y$d!i4d+Da;!fD)LK2DUrYTzhHcW zfy}JH)%_aQ^4|^F-(>t+^2_&2|5>`@ zpb2UlvHx0BrX~ttAAmMh|8t!GUtag$3;sX5LFp&xEBy~T`h61;67ur$ssajq0Q-{- zL}#L}TG#!>I-HyB`~ZDGytZrBWJp97KycFdJ2EB%3^MqA`)MKk0J-5Xd{#{cTr~H8 zKmaGW+Wig>^8bEK{%;2P|I=J2e3yTaek+|}NTi!D$HPHFM%H3b0cKo9z;Y?1@(%CM z{;M}yeBZN5;YES5BS3#iI{-oCoaiVh|K~R-4p+baxZg5Q59I=di$=%CaS>oYefsp< z3i$5C@O0@u~l@=FAa1#F880H=V1Rwvq z3&>mN#Q1FiqKhBGpb(AX2LIvX2l@PMKy1Kq|82s_AAZD7Fc>~wt_DfJ@ z6$PN7<;t;*(=#)G>(JFUd!YWr^$6=YP$`Sfij@=C38_y<&OmJ`Zl~{p|JT`B!;Leb zA|t!s?-f3rr*t!$xF1&c69d2gVLc2?7JL9S2~-F%1*KYoQir!$Qb(0b+2=q11I0h^ zabyW-d`^e+z-|YT*#9G51U=XPrg0gXjq_hHk0K#l&I@Ee0w9D^=>Hipelej!ze-9L zN+ow0)dK743Dkx9&S5N$5!xGv7K+PA)nL8S#>LC4NrPRX)45_)`?lJj?C3W8QZ7gxPEA8D4tG5 z^vf4S|1Py!qxbLMV|4now|L*}o6VO#0QpN&SdC>|TsRYliGYK0rQJOku)SA0p$eb{ zQczHA22*EDn6RC6zI3S4TbY|9JLLwTMT;wHYFe-)OHswnnDr7kAI@W7VAujxI-yW# zSy>sbjt6s*C5r9|FrsJ*G12f3S9iOaSOlJqC-+weg|e9|Q&V>5TM|D7Z7%;zX4P?t zxE}2{uDF?B?avgT$rNH)2Lj{P0iY>fMZ4MQNL^UCyT$QfV{_BCvP*mU#KV#OaOP>u z42XO7XzJ+DE>=9Aul5}^qKp5k;(a&+>@SbwK6dKp?7`J-KQI8V^FeAM%gHEm%wS+K zmOu=uRcpY2`Xd{yS2Lobm?lO)sP{z>Nk&k%IaMxO0q`yGbcwanVYS@ie%x%FMeyN% zspY=BaYen=seI8stMozA-X4gG?C4l|>wYCIdJHV2bqO*q!?)sT$wY?cd;Ln{i0#S$ z#VtezdXJ2aF)%QoS;Yn<-CgWbQ&U%JHrKSZ5n6v@U;yf(^+nd!)|Qr*Ub%Ume&C#T zIa*0c`H(Inwu1KH+Bx6p?QLOk=!b~4;(o%HIP8xOY${{t^L?o%Lu6Q(NR`T}!B&MR z@Q1M0csyay065Y$>P+O6m2vhX+ub-c4n^h7HtF&G{ z*UfN_osnb(Ma7=YvjI;A%wTk|TYJX%E_{8yaNyi=uP(DI&*82okeH*+y5o+DifX6J zADIATk@bxxlJ^|J!LhTbynMMzw|mjLQ#xNB<8X!}Rzsy*+cVY!VC&54?^{ng^qKIm zk=|bQYx4oV7yOx(GiJdg>>s2xH8s%}S$oRVYT*QKFCnts-QC^~M~wi8Mn7l*_1gSM z^$x_eTjvZ|$ov2nM3J_4@$G9NbOJ86t*xy!cz^^sIyx>kT6=Fri=B?4Xf5N0hlc}8 z;I$DXbj9M*mQBg2L8Up9g_Or9I*FS%>5nW$A z_ZqOA9iwV3i+%q5xz=d3<>9zB(`5ruj{WLam=1C&*gUchdR?^%JQ20FE*(FyS97+)WK`C z-yI7G2pv zFfib}>dE0!jwYeq>ed~A3Q!U$D%MY*0ES(=X7T8DaAKzY8o<`pe9W;lE?@7r?v5|# zGc#2xH?07f+}YkfbK%YY#_4*#_4IIq)w#c^Ep6MZ*)DPY?@a#jiVa}d{@wZ!{tu?) zf5!n#8h5zbDZs(OF<*YVw;3s*-QjU3*rBhbMU*;9Jm3rq1B?70p6KuEe+kwu9{slJ z%6jAZ8s-lU@YRo>r)T{ni(|AAo9?s#Lbr56$t60Tn5MHYV>fA`LN?I%16 zoUd^vdZo?vp<1)1jGwK*(geyfC_Y;jpEJ`|)-V0K%PQdaMO8R&jG+GDJv5}c)A<+2H~LqR04Qy_iVYw8LPROnN|DMECAR5-%)Qq_kWah zE#7S2VK}wU$vW%7IEQgWT&hPl9OKj_#Id++dcw3gu5q?yZin>5H3*%iE2`SkD1wMm zx1p^&3E{Z5>q50inr04*NL{jsODN4=mOtRj?|Xjl`@HY_eBbYTY$E!!eLRtD^|3sc z%-t>XWIqXOqf)6rBT0#gkx!yW0Ip4eb%%WIHlY!N!L+uwiy_m@f&Avf$uOlwaWWJ* z^#Nbd8KX!(Z|roB#rj()JRJSp_G{u$L|d>q9S#BPDET;+OKJuNtu&}a< z0m??A&)u}o+S@29(z0e$GMQOGoh&R>7k4XYl(-G3JwJID!26NgN7V|F-PF_s4y928 zDW9Rcex59blL?9p&e+(Pj|ufGPRS$>Rk+g*ODz2iv?k!M@n$+Y5>e_xq(C5m8NJwb z3$~NkPq8eW=B&35PKCPUEu`;^ODKtA4h)61q0i`q#t!1JI~I!t!%rMey*z$fVvmp72)jjSZedWkrlYU#g@xsxfJ_Vv z1Ig%hyrWK`;voA%X#pzP$(RcTa2--3U&s94iTZkrqgpl_4cb7)2q18Hn0e%6Z?B76 zqV)eWnaLG*2Gz*dq~>61YH}Bj<*Y0(=S!_DEF2sh4DNV01X3Z~=VBe`kPXkm+6awv zZT?g9e}tAYnF;n4X`4a@gK-nr-9b=x3=ACZ$mRe9mCub4yPPA{|Eq>4?+81Osp)!s zOfb~G$8~je0|S|o=M0;NFBXWfYIeY)NK}+-VS@MZ2?+`L(jQ{3xS&AR@pwA}dwV<& z)!Wmvw?+mJ)`Ce#N5|RO*$A5uYetUp#Y*fx^8Tc0m)Nm2)z+<$1Ke`ISVPjqR$etc)B?JILKG)W@7;Gn!uH zz2bwS(JzV9-X=oh4HtX*b`wY;E+K*GmX((4XzS|wVQJ(>lH8!Sq@;w8Q;TFNTcZBX zuC5f&8j$SW^#vTnp;JvlY%I_5iW&e@ZVk#!oGHJI7wTvD^;VZvSJRewXXpVWl4R@M zpke~hslrkzpe}&+@Y7T9Pt7yl&_H-1PZ-j45jauUodDsmyV1#qevYRuRV(i1UeqhB zs;ZK_cnB3+k9^tJSGCF{*UvCS!DjbO>EIFT1d(-gl>M8BUGnOm(9$IlW8Sm`SrMwr-D#P4 z{8{m<#6~XY7$~)RZ=+l@+CcMqZQ-cjH9CHY{#`)1FVE}!3^%YhY`}<1%@R~__noB% zD~8@$-d9U8LDUq^e+Df;ofW`S-zA=$QiRozn*C;M08gOt41MSG<~OzR34< Ou=?JMfN%GV&ifBg*eVeK literal 0 HcmV?d00001 diff --git a/doc-random/random-asAN1200.24-Neumann.svg b/doc-random/random-asAN1200.24-Neumann.svg new file mode 100644 index 0000000..0b2b13e --- /dev/null +++ b/doc-random/random-asAN1200.24-Neumann.svg @@ -0,0 +1,1705 @@ + + +Qt SVG Document +Generated with Qt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1x10 + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +counts + + + + + + + + + + + + + + + + + + + + + +random number value + + + + + + + + + + + + + + + + + + + + + +As suggested in AN1200.24 from Semtech with basic von Neumann extractor + + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +20000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc-random/random-asAN1200.24.png b/doc-random/random-asAN1200.24.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0130320bdadabd601fea652225d02d573ae4a3 GIT binary patch literal 81462 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 + +Qt SVG Document +Generated with Qt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1x10 + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +counts + + + + + + + + + + + + + + + + + + + + + +random number value + + + + + + + + + + + + + + + + + + + + + +as AN1200.24 from Semtech + + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +20000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc-random/random-widebandRSSI.png b/doc-random/random-widebandRSSI.png new file mode 100644 index 0000000000000000000000000000000000000000..99802884c32fa6b517b6b44df67e7416e1783e53 GIT binary patch literal 47465 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%0DP2QD#-O+|x?p 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 + +Qt SVG Document +Generated with Qt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1x10 + + + + + + + + + + + + + + + + + + + + + +6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1x10 + + + + + + + + + + + + + + + + + + + + + +7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 150 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 250 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +counts + + + + + + + + + + + + + + + + + + + + + +random number value + + + + + + + + + + + + + + + + + + + + + +Just wideband RSSI meassurement + + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +10000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +20000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/LoRa.cpp b/src/LoRa.cpp index 7d9fde3..983c0f7 100644 --- a/src/LoRa.cpp +++ b/src/LoRa.cpp @@ -16,6 +16,7 @@ #define REG_FIFO_TX_BASE_ADDR 0x0e #define REG_FIFO_RX_BASE_ADDR 0x0f #define REG_FIFO_RX_CURRENT_ADDR 0x10 +#define REG_IRQ_FLAGS_MASK 0x11 #define REG_IRQ_FLAGS 0x12 #define REG_RX_NB_BYTES 0x13 #define REG_PKT_SNR_VALUE 0x19 @@ -649,61 +650,58 @@ void LoRaClass::setGain(uint8_t gain) } } -void LoRaClass::random0(uint8_t *buffer, size_t size){ - for(size_t i=size; i>0; i--){ - uint8_t nbr; - for (uint8_t j = 0; j < 8; j++) { - nbr = nbr << 1; - nbr += readRegister(REG_RSSI_WIDEBAND) & 0x1; - //nbr = nbr << 1; // At the end this would shift the first random - // bit out! nbr would be always an even number. - } +byte LoRaClass::rssi_wideband() +{ + return readRegister(REG_RSSI_WIDEBAND); +} + +// As suggested in AN1200.24 from Semtech with basic von Neumann +// extractor (see +// https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) +void LoRaClass::random0(uint8_t *buffer, size_t size) +{ + for(size_t i=size; i--;){ + uint8_t bit, nbr=0, j=8; + + while(j) + if((bit=readRegister(REG_RSSI_WIDEBAND) & 0x1)!= + (readRegister(REG_RSSI_WIDEBAND) & 0x1)){ + nbr += nbr + bit; + j--; + } + *buffer++=nbr; } } -//#define RANDOMUSEAPI -void LoRaClass::random(uint8_t *buffer, size_t size){ +void LoRaClass::random(uint8_t *buffer, size_t size) +{ + // Waiting until send is finished + while ((readRegister(REG_OP_MODE) & MODE_TX) == MODE_TX) + yield(); + // Saving current state uint8_t crntOpMode=readRegister(REG_OP_MODE); - -#ifdef RANDOMUSEAPI - long crntBW=getSignalBandwidth(); - uint8_t crntCR=((readRegister(REG_MODEM_CONFIG_1)>> 1) & 0b111) + 4; // getCodingRate() - int crntIHM=_implicitHeaderMode; - uint8_t crntSF=getSpreadingFactor(); - - // Setup for random number generation - writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS); - setSignalBandwidth(125E3); - setCodingRate4(5); - if (_implicitHeaderMode) - explicitHeaderMode(); - setSpreadingFactor(7); -#else uint8_t crntModemConfig1=readRegister(REG_MODEM_CONFIG_1); uint8_t crntModemConfig2=readRegister(REG_MODEM_CONFIG_2); + uint8_t crntIRQFlagsMask=readRegister(REG_IRQ_FLAGS_MASK); + // Disable all interrupts (so we won't receive a packet) + writeRegister(REG_IRQ_FLAGS_MASK, 0xFF); + // Setup for random number generation writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS); writeRegister(REG_MODEM_CONFIG_1,RNDM_SIGNAL_BANDWIDTH|RNDM_CODING_RATE|RNDM_HEADER_MODE); writeRegister(REG_MODEM_CONFIG_2,RNDM_SPREADING_FACTOR); -#endif + // Collecting random numbers random0(buffer, size); - // Resetting crnt state - writeRegister(REG_OP_MODE, crntOpMode); -#ifdef RANDOMUSEAPI - setSignalBandwidth(crntBW); - setCodingRate4(crntCR); - if (crntIHM) - implicitHeaderMode(); - setSpreadingFactor(crntSF); -#else + // Restoring current state writeRegister(REG_MODEM_CONFIG_1, crntModemConfig1); writeRegister(REG_MODEM_CONFIG_2, crntModemConfig2); -#endif + writeRegister(REG_OP_MODE, crntOpMode); + writeRegister(REG_IRQ_FLAGS_MASK, crntIRQFlagsMask); } byte LoRaClass::random() diff --git a/src/LoRa.h b/src/LoRa.h index 180178c..2b8af69 100644 --- a/src/LoRa.h +++ b/src/LoRa.h @@ -86,6 +86,7 @@ class LoRaClass : public Stream { void crc() { enableCrc(); } void noCrc() { disableCrc(); } + byte rssi_wideband(); // RSSI wideband meassurement byte random(); void random(uint8_t *buffer, size_t size); From c4580cd9f8ad8fbf552e61f0934bf355ef3f01e5 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Fri, 6 Aug 2021 14:28:17 +0200 Subject: [PATCH 04/12] Update API.md Description of the new/improved function `random()`. --- API.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/API.md b/API.md index db1cf1c..c20de50 100644 --- a/API.md +++ b/API.md @@ -387,10 +387,42 @@ Supported values are between `0` and `6`. If gain is 0, AGC will be enabled and ### Random -Generate a random byte, based on the Wideband RSSI measurement. +Generate random bytes, based on Wideband RSSI measurements. The least significant bit (LSB) of each measurement is fed in a [Basic von Neumann extractor](https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) for additional whitening. ``` byte b = LoRa.random(); ``` Returns random byte. + +``` +LoRa.random(uint8_t *buffer, size_t size); +``` + + + * `buffer` - pointer to an array of bytes + * `size` - size of the buffer in bytes + +Returns nothing but the buffer will be filled with `size` random bytes. + +If you need more than one byte it is recommended to use the second function due to some overhead. + +The LoRa module is put in a receiving mode with configuration as suggested in AN1200.24 from Semtech. Before changing the mode all pending transmits are send. After collecting the random numbers the module is reconfigured to the state it has before calling this function. During the collection of the random numbers no packets can be received. + +The pseudorandom number sequence test program [ENT](http://www.fourmilab.ch/random/) gives quite good results when fed with random bytes generated with a HopeRF RFW95 module and this function: + +Entropy = 7.999980 bits per byte. + +Optimum compression would reduce the size of this 8757184 byte file by 0 percent. + +Chi square distribution for 8757184 samples is 247.56, and randomly +would exceed this value 61.91 percent of the times. + +Arithmetic mean value of data bytes is 127.5110 (127.5 = random). + +Monte Carlo value for Pi is 3.142532185 (error 0.03 percent). + +Serial correlation coefficient is 0.000407 (totally uncorrelated = 0.0). + +You can get around 1000 bytes/s with an ATmega328p and a HopeRF RFW95 module. +For more information see [RANDOM.md](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/RANDOM.md). From 627eb4299b14ab419b17bebea9d3be1cf2f274d7 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Fri, 6 Aug 2021 14:34:24 +0200 Subject: [PATCH 05/12] Delete random-asAN1200.24-Neumann.svg --- doc-random/random-asAN1200.24-Neumann.svg | 1705 --------------------- 1 file changed, 1705 deletions(-) delete mode 100644 doc-random/random-asAN1200.24-Neumann.svg diff --git a/doc-random/random-asAN1200.24-Neumann.svg b/doc-random/random-asAN1200.24-Neumann.svg deleted file mode 100644 index 0b2b13e..0000000 --- a/doc-random/random-asAN1200.24-Neumann.svg +++ /dev/null @@ -1,1705 +0,0 @@ - - -Qt SVG Document -Generated with Qt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1x10 - - - - - - - - - - - - - - - - - - - - - -6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 150 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 300 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -counts - - - - - - - - - - - - - - - - - - - - - -random number value - - - - - - - - - - - - - - - - - - - - - -As suggested in AN1200.24 from Semtech with basic von Neumann extractor - - - - - - - - - - - - - - - - - - - - - -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -20000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 7a37f8fdc764a1be9045910ed89bd992a5cff347 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Fri, 6 Aug 2021 14:34:32 +0200 Subject: [PATCH 06/12] Delete random-asAN1200.24.svg --- doc-random/random-asAN1200.24.svg | 1705 ----------------------------- 1 file changed, 1705 deletions(-) delete mode 100644 doc-random/random-asAN1200.24.svg diff --git a/doc-random/random-asAN1200.24.svg b/doc-random/random-asAN1200.24.svg deleted file mode 100644 index 538e839..0000000 --- a/doc-random/random-asAN1200.24.svg +++ /dev/null @@ -1,1705 +0,0 @@ - - -Qt SVG Document -Generated with Qt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1x10 - - - - - - - - - - - - - - - - - - - - - -6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 150 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 300 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -counts - - - - - - - - - - - - - - - - - - - - - -random number value - - - - - - - - - - - - - - - - - - - - - -as AN1200.24 from Semtech - - - - - - - - - - - - - - - - - - - - - -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -20000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 7a2538243db546aa838f4db2878bbaa10cdb5d17 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Fri, 6 Aug 2021 14:34:40 +0200 Subject: [PATCH 07/12] Delete random-widebandRSSI.svg --- doc-random/random-widebandRSSI.svg | 1832 ---------------------------- 1 file changed, 1832 deletions(-) delete mode 100644 doc-random/random-widebandRSSI.svg diff --git a/doc-random/random-widebandRSSI.svg b/doc-random/random-widebandRSSI.svg deleted file mode 100644 index 0bf88e8..0000000 --- a/doc-random/random-widebandRSSI.svg +++ /dev/null @@ -1,1832 +0,0 @@ - - -Qt SVG Document -Generated with Qt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1x10 - - - - - - - - - - - - - - - - - - - - - -6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1x10 - - - - - - - - - - - - - - - - - - - - - -7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 150 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 300 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -counts - - - - - - - - - - - - - - - - - - - - - -random number value - - - - - - - - - - - - - - - - - - - - - -Just wideband RSSI meassurement - - - - - - - - - - - - - - - - - - - - - -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -200 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -20000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From fbd9aea502be638affa723778730e20e95f9fa54 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Sat, 28 Jan 2023 14:54:05 +0100 Subject: [PATCH 08/12] Reason for the fork --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index 51341ff..b9f0502 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,38 @@ +# This Fork + +adds support to **real random numbers** to this library. + + +## How it is done? +It first renames the original function `byte random()` to `byte rssi_wideband()` as this is what this function does! It depends on the location of the meassurement and gives only random values from 0 to MAX with MAX<<255. The result (see [here](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-widebandRSSI.png)) looks strongly biased. In my case only numbers between 0 and 31 are returned! + +There is an description how to generate random numbers in Application Note AN1200.24 from Semtech. See Chapter 4 [Random Number Generation for Cryptography](https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/440000001NAw/7YN8ZamV70_xR.vPDAAAshm.0Wt4jmRX0nOKkOzQqiI). + +To generate an N bit random number, perform N read operation of the register RegRssiWideband (address 0x2c) and use the LSB of the fetched value. The value from RegRssiWideband is derived from a wideband (4MHz) signal strength at the receiver input and the LSB of this value constantly and randomly changes. + +Doing so gives this [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24.png). It looks like bit '1' is prefered in comparion to bit '0'. So binary numbers with many '1' occure more often. But we get the whole range of possible numbers. + +Last, we add a basic von Neumann extractor which produce a uniform output even if the distribution of input bits is not uniform so long as each bit has the same probability of being one and there is no correlation between successive bits (see [Bernoulli_sequence@wikipedia](https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) and [Randomness_extractor@wikipedia](https://en.wikipedia.org/wiki/Randomness_extractor)). The [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24-Neumann.png) shows random numbers without bias. The function reproduces the mean value when we pull enough numbers. + +**Using the program [ENT](http://www.fourmilab.ch/random/) from fourmilab gives** + +### For the new random function of this library + - Entropy = 7.999980 bits per byte. + - Optimum compression would reduce the size of this 8757184 byte file by 0 percent. + - Chi square distribution for 8757184 samples is 247.56, and randomly would exceed this value 61.91 percent of the times. + - Arithmetic mean value of data bytes is 127.5110 (127.5 = random). + - Monte Carlo value for Pi is 3.142532185 (error 0.03 percent). + - Serial correlation coefficient is 0.000407 (totally uncorrelated = 0.0). + +### For rssi_wideband() ( sandeepmistry's "random" function) +- Entropy = 3.910721 bits per byte. + - Optimum compression would reduce the size of this 11800167 byte file by 51 percent. + - Chi square distribution for 11800167 samples is 311806630.27, and randomly would exceed this value less than 0.01 percent of the times. + - Arithmetic mean value of data bytes is 14.9272 (127.5 = random). + - Monte Carlo value for Pi is 4.000000000 (error 27.32 percent). + - Serial correlation coefficient is 0.000269 (totally uncorrelated = 0.0). + + # Arduino LoRa [![Build Status](https://travis-ci.org/sandeepmistry/arduino-LoRa.svg?branch=master)](https://travis-ci.org/sandeepmistry/arduino-LoRa) From b57f36eaf29541147eaefec5a339b57dc0dca9d9 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Sat, 28 Jan 2023 15:17:28 +0100 Subject: [PATCH 09/12] Update README.md --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b9f0502..51d0d41 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,21 @@ adds support to **real random numbers** to this library. +The new functions are + ``` c + byte rssi_wideband(); // RSSI wideband meassurement - the original "random" fuction + byte random(); + void random(uint8_t *buffer, size_t size); + ``` +There is some overhead in creating random numbers. So if you need more then one you should use `random(byte *, size_t)`. -## How it is done? +The new random functions takes care about send and receive during a call. They wait until a processed packet is fully send and switches of any IRQs during collecting randomness. Before returning all parameters are set to the original state. + +A long time ago I suggested change request [#496](https://github.com/sandeepmistry/arduino-LoRa/pull/496) but until now nothing happend. + +If you need not only a palmful random numbers you can have a look at library [LoRandom](https://github.com/Kongduino/LoRandom). + +## How is it done? It first renames the original function `byte random()` to `byte rssi_wideband()` as this is what this function does! It depends on the location of the meassurement and gives only random values from 0 to MAX with MAX<<255. The result (see [here](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-widebandRSSI.png)) looks strongly biased. In my case only numbers between 0 and 31 are returned! There is an description how to generate random numbers in Application Note AN1200.24 from Semtech. See Chapter 4 [Random Number Generation for Cryptography](https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/440000001NAw/7YN8ZamV70_xR.vPDAAAshm.0Wt4jmRX0nOKkOzQqiI). From 9151b267720f18ef214cf001b877308ed354d429 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Sat, 28 Jan 2023 15:27:39 +0100 Subject: [PATCH 10/12] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51d0d41..d7f274d 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,16 @@ The new functions are ``` There is some overhead in creating random numbers. So if you need more then one you should use `random(byte *, size_t)`. -The new random functions takes care about send and receive during a call. They wait until a processed packet is fully send and switches of any IRQs during collecting randomness. Before returning all parameters are set to the original state. +The improved function takes care if a packet is just to go over the air. It waits until the transmit is finished before setting up for random number generation. + +In general you can not receive a wanted packet after setting up for random number generation. This is because of the fact that bandwidth, spreading factor, and coding rate is changed. For this reason I disable the interrupt IRQ_RX_DONE so no accidental receive will disturb us. In fact all interrupts on the SX127# will be disabled to be on the sure side. After finishing the collection of random numbers all the interrupts are restored to the previous state. Before returning all parameters are set to the original state. A long time ago I suggested change request [#496](https://github.com/sandeepmistry/arduino-LoRa/pull/496) but until now nothing happend. If you need not only a palmful random numbers you can have a look at library [LoRandom](https://github.com/Kongduino/LoRandom). ## How is it done? -It first renames the original function `byte random()` to `byte rssi_wideband()` as this is what this function does! It depends on the location of the meassurement and gives only random values from 0 to MAX with MAX<<255. The result (see [here](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-widebandRSSI.png)) looks strongly biased. In my case only numbers between 0 and 31 are returned! +It first renames the original function `byte random()` to `byte rssi_wideband()` as this is what this function does! It depends on the location of the meassurement and gives only random values from 0 to MAX with MAX<<255. The result (see [here](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-widebandRSSI.png)) looks strongly biased. In my case only numbers between 0 and 31 are returned! The cureves are for 20, 50, 200, 1000, ... samples. The more samples you have the better shows the bias up. There is an description how to generate random numbers in Application Note AN1200.24 from Semtech. See Chapter 4 [Random Number Generation for Cryptography](https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/440000001NAw/7YN8ZamV70_xR.vPDAAAshm.0Wt4jmRX0nOKkOzQqiI). @@ -25,7 +27,7 @@ To generate an N bit random number, perform N read operation of the register Reg Doing so gives this [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24.png). It looks like bit '1' is prefered in comparion to bit '0'. So binary numbers with many '1' occure more often. But we get the whole range of possible numbers. -Last, we add a basic von Neumann extractor which produce a uniform output even if the distribution of input bits is not uniform so long as each bit has the same probability of being one and there is no correlation between successive bits (see [Bernoulli_sequence@wikipedia](https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) and [Randomness_extractor@wikipedia](https://en.wikipedia.org/wiki/Randomness_extractor)). The [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24-Neumann.png) shows random numbers without bias. The function reproduces the mean value when we pull enough numbers. +Last, we add a basic von Neumann extractor which produce a uniform output even if the distribution of input bits is not uniform so long as each bit has the same probability of being one and there is no correlation between successive bits (see [Bernoulli_sequence@wikipedia](https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) and [Randomness_extractor@wikipedia](https://en.wikipedia.org/wiki/Randomness_extractor)). This extractor is whitening some LSBs of RSSI wide-band measurements for each random byte. The [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24-Neumann.png) shows random numbers without bias. The function reproduces the mean value when we pull enough numbers. **Using the program [ENT](http://www.fourmilab.ch/random/) from fourmilab gives** From 7d3c0a537f8c966c8665afc44519125a98b49ce4 Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Sun, 29 Jan 2023 20:34:01 +0100 Subject: [PATCH 11/12] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d7f274d..286e289 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ adds support to **real random numbers** to this library. -The new functions are +The new methods are ``` c - byte rssi_wideband(); // RSSI wideband meassurement - the original "random" fuction + byte rssi_wideband(); // RSSI wideband meassurement - the original "random" method byte random(); void random(uint8_t *buffer, size_t size); ``` -There is some overhead in creating random numbers. So if you need more then one you should use `random(byte *, size_t)`. +There is some overhead in creating random numbers. So if you need more then one you should use `random(uint8 *, size_t)`. -The improved function takes care if a packet is just to go over the air. It waits until the transmit is finished before setting up for random number generation. +The improved method takes care if a packet is just to go over the air. It waits until the transmit is finished before setting up for random number generation. In general you can not receive a wanted packet after setting up for random number generation. This is because of the fact that bandwidth, spreading factor, and coding rate is changed. For this reason I disable the interrupt IRQ_RX_DONE so no accidental receive will disturb us. In fact all interrupts on the SX127# will be disabled to be on the sure side. After finishing the collection of random numbers all the interrupts are restored to the previous state. Before returning all parameters are set to the original state. From 033f6c16be5d201cad1f58e6c764829ec447cfee Mon Sep 17 00:00:00 2001 From: plybrd <87410183+plybrd@users.noreply.github.com> Date: Sun, 14 Jan 2024 10:18:50 +0100 Subject: [PATCH 12/12] Update README.md (minor changes) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aca7bdc..48ac492 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ There is an description how to generate random numbers in Application Note AN120 To generate an N bit random number, perform N read operation of the register RegRssiWideband (address 0x2c) and use the LSB of the fetched value. The value from RegRssiWideband is derived from a wideband (4MHz) signal strength at the receiver input and the LSB of this value constantly and randomly changes. -Doing so gives this [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24.png). It looks like bit '1' is prefered in comparion to bit '0'. So binary numbers with many '1' occure more often. But we get the whole range of possible numbers. +Doing so gives this [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24.png). It looks like bit '1' is prefered in comparison to bit '0'. So binary numbers with many '1' occure more often. But we get the whole range of possible numbers. Last, we add a basic von Neumann extractor which produce a uniform output even if the distribution of input bits is not uniform so long as each bit has the same probability of being one and there is no correlation between successive bits (see [Bernoulli_sequence@wikipedia](https://en.wikipedia.org/wiki/Bernoulli_process#Bernoulli_sequence) and [Randomness_extractor@wikipedia](https://en.wikipedia.org/wiki/Randomness_extractor)). This extractor is whitening some LSBs of RSSI wide-band measurements for each random byte. The [result](https://github.com/plybrd/arduino-LoRa/blob/master/doc-random/random-asAN1200.24-Neumann.png) shows random numbers without bias. The function reproduces the mean value when we pull enough numbers.