From 07f93699a575f970619460149ca08188fb0b7861 Mon Sep 17 00:00:00 2001 From: poka Date: Sun, 3 May 2020 01:32:28 +0200 Subject: [PATCH] first --- .env.example | 10 + .gitignore | 68 ++ Dockerfile | 29 + LICENSE | 21 + README.md | 25 + bin/bbot | 148 +++ bin/bbot.cmd | 4 + img/avatar.png | Bin 0 -> 19065 bytes img/banner.png | Bin 0 -> 43568 bytes index.js | 18 + init.js | 76 ++ package.json | 53 + src/aide.js | 19 + src/axiom.js | 51 + src/debug.js | 17 + src/disabled/examples.js | 201 ++++ src/disabled/tpl.js | 33 + src/disabled/url_metadata.js | 57 + src/g1-info.js | 34 + src/g1sms.js | 20 + src/hubot_scripts/aide.js | 16 + src/hubot_scripts/liens.js | 12 + src/inc/aide.txt | 11 + src/inc/liens.txt | 6 + src/inc/need-certif.txt | 9 + src/inc/repliques-mlc.txt | 6 + src/jokes.js | 23 + src/liens.js | 21 + src/reactions.js | 23 + src/reload.js | 22 + src/repondeur.js | 12 + src/shell/aide.sh | 21 + src/shell/g1-infos.sh | 30 + src/shell/helloasso.sh | 25 + src/shell/liens.sh | 12 + src/shell/tata.txt | 22 + yarn.lock | 2489 ++++++++++++++++++++++++++++++++++++++++++ 37 files changed, 3644 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 bin/bbot create mode 100644 bin/bbot.cmd create mode 100644 img/avatar.png create mode 100644 img/banner.png create mode 100644 index.js create mode 100644 init.js create mode 100644 package.json create mode 100644 src/aide.js create mode 100644 src/axiom.js create mode 100644 src/debug.js create mode 100644 src/disabled/examples.js create mode 100644 src/disabled/tpl.js create mode 100644 src/disabled/url_metadata.js create mode 100644 src/g1-info.js create mode 100644 src/g1sms.js create mode 100644 src/hubot_scripts/aide.js create mode 100644 src/hubot_scripts/liens.js create mode 100644 src/inc/aide.txt create mode 100644 src/inc/liens.txt create mode 100644 src/inc/need-certif.txt create mode 100644 src/inc/repliques-mlc.txt create mode 100644 src/jokes.js create mode 100644 src/liens.js create mode 100644 src/reactions.js create mode 100644 src/reload.js create mode 100644 src/repondeur.js create mode 100755 src/shell/aide.sh create mode 100755 src/shell/g1-infos.sh create mode 100755 src/shell/helloasso.sh create mode 100755 src/shell/liens.sh create mode 100644 src/shell/tata.txt create mode 100644 yarn.lock diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..23b35eb --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +BOT_LOG_LEVEL=debug +BOT_NAME=brocket +BOT_SHELL_USER_NAME=user +BOT_SHELL_ROOM_NAME=shell +ROCKETCHAT_URL=http://localhost:3000 +ROCKETCHAT_USER=brocket +ROCKETCHAT_PASSWORD=pass +RESPOND_TO_DM=true +RESPOND_TO_EDITED=true +LISTEN_ON_ALL_PUBLIC=false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..916d476 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env-axiom-chat + +# next.js build output +.next + +# npm lockfile (using yarn) +package-lock.json + +# Memo +memo.txt diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..071d980 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +FROM node:8.11.2-alpine +LABEL maintainer="Rocket.Chat Team " + +ENV npm_config_loglevel=error +ENV BOT_OWNER "No owner specified" +ENV BOT_DESC "bBot with the Rocket.Chat adapter" + +USER root + +COPY bin/bbot /home/bbot/bin/ +COPY package.json /home/bbot/ +COPY index.js /home/bbot/ +COPY src/* /home/bbot/src/ + +RUN apk add --update --no-cache \ + git && \ + adduser -S bbot && \ + addgroup -S bbot && \ + touch ~/.bashrc && \ + npm install --global npm@latest && \ + chown -R bbot:bbot /home/bbot/ + +WORKDIR /home/bbot/ + +USER bbot + +RUN npm install --no-audit + +CMD ["/bin/ash", "/home/bbot/bin/bbot"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5eaf2e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Amazebot + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..44980e2 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +Coabot - le gentil robot de la mare aux crapauds +================================================== + +Coabot est basé sur [bbot](http://bbot.chat), un framework de bot pour rocketchat qui est encore en cours de développement. bbot est librement inspiré de hubot, le bot de chez github. + +Voir https://wiki.crapaud-fou.org/coabot pour plus d'information à propos de ce bot. + +Développement +------------ + +- `clone` +- `npm install` +- `edit .env` +- `npm start -- -m shell` (pour tester en local) +- `npm start` + +Author +-------- + +- mose + +License +--------- + +(c) copyright 2019 - mose - available under [MIT](LICENSE) License diff --git a/bin/bbot b/bin/bbot new file mode 100644 index 0000000..cd277a2 --- /dev/null +++ b/bin/bbot @@ -0,0 +1,148 @@ +#!/bin/bash + +# Stop NPM from complaining about useless stuff. +export npm_config_loglevel=error + +# Listen for SIGINT/SIGTERM so the container can be killed with CTRL+C +# Also prevents reboot bug where the container freezes for 30-60 seconds +asyncRun() { + "$@" & + pid="$!" + trap "echo 'Stopping PID $pid'; kill -SIGTERM $pid" SIGINT SIGTERM + + # Signal emitted while waiting will make the wait command return code > 128 + # Wrap it in a loop that doesn't end before the process is indeed stopped + while kill -0 $pid >/dev/null 2>&1; do + wait + done +} + +cat <oX-pwkkaa5(d+aAbA)sxc$0U=kD_3Iwfx#tI1utu;EkGcav@cG+rn-EF&5!6t|Y zf+!t#E7=68GgaHIx2ZpJsZ*~K7@3P%`I_J&|48nUjL?Iw`_$ft)L;1pEWF_$D0MuR z`ZbCAr=*HqsFq!rI#ooSeoOtH`4M)u9)>JsTGQ`GiL(~)dCkuV`NEXV$Edc zppJxRFtT(Y#HoGWZE&{W?U}7x+v%dqwyg}e@gv2u@mRu&5y9`Xt%$zS7SsI}nsf^5> z2=NpsybR1<1!k*YV)X-o>!FBzW^OMK_&o&n8Orei0xw}?e!u{}$G|jH6K-yx+{Vl$ zCW^FXWR-;SEPuFl9RwAI^2$TGR3RMkU^ZT6zFQ37R%T8EFr1m?jJKnvioCcs7-46w zWX{O?;)-0dzlp4rNFl+jn1$!bZEZL+|8&i*=~vfEZmLecap-<|wJO0P(?Bv*l;R5Q!nmlS;u6!eyJ{RO}FTVRL?Q)ZuY=r=C zZO)xx?;FpF_AP9Jzdi;1PPn)D;m%Cn)d<{`$9GJ9SOrQFoCX6h#=46A$&Pkxf)fCM zsn$g!{i}gL*V>eTr$eJ1bzJ(f;|lil@&CIpn`_@&_PD&bKix&@<|3pl7i@4z*jd`)>y_>d%Ho^Fi&O7u5SbL}umGy`Vjb#J10KZOcn= z#xs47$Cva{W}?h*x3OvST)w+8#r1(-#uDUPq(nUnq2>40O>>t0nZIMHZ(@c&| z^m(I?xLd;NM9JrA)6z5<*>**?aaCb-BunSbgSS1<>_(Ly0$yrywo8;jmH|{k5b}-x(`( z{Kj^mdg%1YP{W_LM{a|BtZBewU~hr(4uR$VCxP7qc=rj8%^vWOTHwD!V0bbKXXOid zu%xsY|VN28N7WX}cg7t>((vbNsG(AKP+84u>e7|4<1 z1F-A`O-)7-%42N5Wrv4eFC7#lj#s;Ue~~Bf>FKst33>!L9P2;KT8d&=sr{~&dM&Y@ zJ5XQl(fJ8`vAdo*i25$UdRob!irI=?YMJImxk=(fmj}rv#Xm0Z5se?9t^QJ)eb0Wb ztBSS0!+VjDH$rsIF1kACq1)Tm^!t@J5l z1y&<*&h-yi-@r&rec!n!UnU^!r@H3H&A5IqImaf`?lqs03ftc8 zf2}WA^M3k|Bs5Lm0*+Xn!Cdf;=6QR1&xPzs$s*|lQ!m_flpr0Pt)g&ze{ztP=pd1``H{9OU{QY4C2Lzcj;| zg>7%-r!Jr8{fO3vsv66m)$xjYE6=t9m%S7{k>6V&!@4i1wmh9DtQ68J!md61#O8Kz zbD`HKXKCpB8(LL^0~-8n`F!?N`v;VN=M(PjfBH^?wnIWzmOPec^Op2q1-q5M*PSbr z#xqG&8QsByOxnw61=k<`UF8Wx2BL>(d|?|0lavkLmxl5t@9gaIhflH%Z*Suw9|2Ga zJrK3m%wG%WqzLD&cH)cD^~o3E!)Kw(uT6pkrKeE0gyw5G1VKq43XP0yaM1^pJUa&+W;7|F7^ z&LP(mS5S8;2mXj300{}lncevE7)^fOqIof>9&=|@E}vNmw$@m^K*P3{yEP-XjHl(} z?F4y6Mff08Ev0)aJ)4lG$+vxZ_8(mICRj=MB>)D?JyMU{vL7}>l&VjS{=>HwG~#+E zWPZZ~%k%M({XLtU^LBXPZtO;o$UXDj4T#Rf+c<8yYSP^p|B+fNGU>|a6Wn1J{wd$zH*tey71@(lF+NGIhF+aCusnwMFXcsD`- z%rj{+BHMJCWqB$brt5AZK1px9`52v_Xk-9}!S``%FL0nJc1y|~&61HxX z&eFxcz4aG(5^13967|_q=O{Cco@}QeQ>?!g-r1C6AsGZiwZBkvrJO z-lxE4<<$2f3jV<~v_t4|zuCA9`F_u#9F8OqnRtkz-Vpsucl)|3_B_&+)LqXtxUZSB zuoSg<`y~8TaCyR^;_Iwl0Oa{TXaFESTsTW zxMQMo&dHO}-7#Ob`<)I+oh3mtDi7&Ss?AQ@t;*a$kUWx_m2yle`g?6~vkxb6=MiZ* zF&BMs@}zCoqSf1GQIn12v0}5e$uzFOzH{brcr0p32)1@=Rh4?G;_rO3^WHOS5+zna zLX_5QAMF2~W9Ok@^3wR#XbDx99({Pu^1EK9r6%T=)h6ooy6k&BD(+0^;b*H8E=GSaU; zmo}4&G4_1T$<$beEkNJBpc-YO{ySy4lG*P^qTpRgo}u$l%D{kTHtAFTzypxK{Mi0(?%ipy;dy3Ouu~c(iI=WFVSOGg*nVqx z5-uBYUW?4fYZ#@>`?p|KJHBI??i|Tp!L+B4m!n}zT|7tpSQ++`TRo-w6o_J1WjN-ORA+4eQ6e=0 zr+wA8v_lU=1=mm=@QUWq<%0{4bB426tv?`da~uU3=NPX*bvhbppt+@dd|Fa?apz?=j(|GY z%MVIB$L=mHI44VAI$&8u#)ZwMyLBe-J*VM-e`XjiDR)KQ8w9G@5fBAow)#7*e00YB9L9sT?=lO;nCCd0L0hn@%1d$1fc7@y8TZ z9#a2l=38uI)*-_4RGNSUd!%PLgM@Vx&M!YaeK2$Po9!x@Q?qp%RYbsTSQd!HiLFzm zyquHHRoXz*)~I1H3(z+T@^WG~r?I1Us~k>PChW5;aXE!|Wan5WQ~=sfBj(O>7}b>I z(@$P(lcqxp_lcsxVd!!d$(6|a^tQEa2cyxE;c3@rfuXCi{#IXxH$51}F#HrGVnY=_9R~g5|{0}nXmbpx`cv-xVy#X+6u6de2tzhw*aOV&62@SM< za7KRr$Cvrde?sT!xGFMGw3T_0vOvF!b=pUwW=n7FX12{M{A)r5nxmI(*WhJW3J99N z!tu%ZM%*{cs85BYph|W@XpPeENUQB}OsF0OiRhdbkK>f3OC|9|y1jlg$f|z83T7yi z)>^;aS|-t*qx}Nl|a65!>V6<&tPOLrrO6QXcdwO8>$hn-jqd7_ElM2f|h{&7l zJJwg?J~~kj3l5354^A>TgQt^4FP|3B!nchb{s!&Mc%nU@UTJmivW!DZoM2-biZ>xI zQdTJa2hX>)Um@ANY3~DcTQ4$NAB-r;^-AXT><=qGq;qhIK`eAu2h&R+aNR8H)hm4(;2UFob&Ixz87U(;l=RZ4V^oBEkE}9*ER;c z%&nn3K>;=`G z%{aJN+-()M(gHMo5AviiH{6aI73C2LPYU2VXxtLhIn`*bHm?`|`*9HB+^#~eJdo0} zK7TQy+hm>?9Jn~mL+^mi5a;$71uUmNY03Ujn>qB>LBkdTX^veSos=|ZDaU8~EY5uD z4KV=eZOrqI>U^$qEu~Z`Kb54LrwnSGqoP9XzCR-}zebjH87A_@b}@Ti=M>4Z2Aqq7C;eH`3PK&OHT4JMvqfr;I4lxf z6gV}WeR)%OaCXP89L&8*UTx>wK6zB$nH~o^8(tKgxgfN!uPe#%^xdhvX~iyAMLs4% z-#^Q|_J}k$d==Es>=$0G&?vMVfMMSkn!{v5-ZfpRGuY-h092phGq(}sjw zyxlN+y1Blr+y)qD<@`JvsH(@;#A#`ZwhI|P-1L;>e<&v=7LqC8qoB0zOU=dioNHO4 z`affi{&hgZD!f6cHYpAHldYqwXG8`g=bpR!1u~u##^)7Yz5mMzC$5eh|y0AHNK<3$ii#EohuHFt8-`A<` z6UorL89IGX{7}L9(uYsu7u8u8+6RgpOQ)r;o?CF$3F)TiEhd&o9R!K6bP?Y@T-QK7 z6QDax`-au%^pq$IYO3>T*7h!n{r0YV)4ZW5*X_NMe3!S#O9bi2#Lk>9m79JsV=mB! zPqgab%fl!-Js@qZYII~!_4xk$N5OX?wfx`b@?U8U8f5VGK#qgA+Ssiw?TxSX@Gl3? z^t`$)Wn0Fg&B%A*)Z&!>9AtVI@I`L#4HiG=@@jQq&L>@P{d$Ye7%>K#2(J{^h*&4O z1dQDC7S9#i^-qHN0uGF4ovh)!m!C0R^hklLm-g^Cf;1N3{fE~j2c@mXH60QFz3V0) z?L;-gL}~7vNb*ALbFef~{WjJ^BE~(J4Hv2vR-p}mSQVbz{hU(z$WZpzIW65V78;iT zvf$CHTfYGdHE}bhURkmq9zW#}W1ntqGXu8XLjT(f`MYTrf|DVH0yaRKk75!cY6qM&TbD;FYaD5pGAdehOdgVUKAes^>QGo0V|$r$?cSqL-0F$W%CIe;FDO z>IqsNfK;yHH{Za=xN2m5IU12m-ih;3lD~WwBsh-Y1&*ZOszV7!eWdSRLPDT z7T%rA-k&TX#;YCJK2vAAdrDkPRGSSUSs!Avu1ZK|qoW?>I9WP6|8af}1OL3gjg0ry z@B5zzvI9e1Iol1_1#)jI8(QFRHMcaistdDyn@7fZ>i;yMRmvQqCxeP$%Dt*JigsfQ zV#@bM4F{=Sq^`iOTg3B0;SaR?54BYy5LYVQ3(LYLPqt$J=!smGU;PpPf7 z`jpPpNuU`&R%S^d%*#P)*$CP_f80D3R|uo6rTBVaL>}}S(Ei=q z_|#&2a6)Ep4*GOVyL>s*a!|NqZhvHNZVvXj@A&O_8%d-z^M*hoY3(za_3Ck0(6INh%rMd94~B>G-rmk^!xyJP6k9)C1_*`9)+=yz_RXZFqDz z=rEAw3$gG5$7yhyC&FNhj3V5*UlvwO9t^?CiK}QmKEv*Gq`+^XhkDg1t1RZfX?^#VQs>I`3xxxg~w0XWC6o>pP1u!1-466&#^E<$N)b&^8nCF_0yx zW5eLo886F&Uamg2h9IA4war@Z7rb`Yt!~~n@8|Kt{F%OcK*p85ibQ{Jo!I)H_LVoI zZ4YNC#1B<5Wu=@iei=t4dHOm|e5-ap5gct>94&0Jp<(H+hM!p_SWn0CqULmW=LvDC z@=q|PD^v5cldxk62=rw;G2sQ;rW7VOzxnLh5^a+R!)MFKvZ^k6l~xkJ)VQ9frw+Eo#B>+%@`OI5xOBds5L>2AM{F6<8N7B#X8`+ihuyHR|RdTkY(7HAp`3gGKo+_7V$ z2TEe!C?e(L{W%Paq<{j|K?$lE1!yJFic4GF?k6wsAfk;hEzVyth^h>uafb z!Tr9+Z-xcb$W```y>83TtPt7+VVl|v3(I>;CALh4?;e&(@Yf1&S6CBINk{Cdvl|AQ zE;`{-U(kz!^{638RSxr2ywb1jA%Tkr-ZpQE(TDv^9=`5+iZ5GLW)v(LKgR5|eXjg| zP+@2x*Y-G}vBpR)8aN5AUxFR2UOLte`6ey0bV_csovoMbRB}iPqzy&4%CUdHq+Gxt zJOu#eXqYd$>pkox16OMQ?$I2bf416Z?b=m={ti1Eb$il|t~w?~vRdTz z3P07l>w!JjOQJK)+^=9Rbbwee3aRhQjI?by$}f5Iw?Ks+)Tqk>ACD;iU&Hiws0ck- zYFa%NU#-w>pW}9BBzH+2PJU&+W(gDg&sUf8>3S_8vQF{iL!3EGB3SeK(QlDf?}&@~ z4XstYkNcLfd-X8hvFO67Zz0m&HgO*p+ukLH3YPC$>$7@gjO=F*0=0d$kZ zg}6`hshR$FVVPdnik#NH#<1VJOm5d2YctPkx1mi__2g~xf{p3EQ<0`CJ?NYzc6_InV+mOe<^PoDcj)++IJXH*z38w?rbZxXW z>XWRj88%UR&fOg+Jx#K7jDz7DZtkP+qi=n1;b{q8 zvC{v1FFphIxXQOi+0?!fw?4-2OORd3$~sB@`RRHCiK4JeG5?FrmjVf?$(^j&1XnPW z1Q?YUC?vUcMGT%~wTjT;Z|}{Kxn(NKmH{g5V*#Vm+ZIds65C{_uj=^ ztDV&$?-PW5v~rS}3FL=ovUIoVtx7DbhD+{%dG6h$wf;~GpOkD@Olp-+0t&NmBAPly zG_r1cW|}L-8;Ziz1TG4UeQ};JwtAaEenqyFjd@Nd^h+3~bqa~|vH2+$MnjD`p)d(U zz6-6J$Mb`Syb7_|-%XwkH#bxMd~TY05|FRAnSP)0I$ZCOX-a*%8P1vUb#r`y{cT-iG-rV ziH{M^D&$;BLZLbcx@sYx>RO2gH#bE|zwvf$Ie$DxBH)O-Bnll5d2$? zCxqd+1uJ1q;WNL}?9{LNJad2lda-#qs(~?tTgb_WU(CjWz zeUS0DK0PwEVViQH!tX=E(w~8e!3b|EDe-b`^Ka>;apMOJRn8L+@>MKzZmQQqGS2l~ zh(Dst=65Y6jULa<%>A%i9^DjUs?93*y70!zl{&fE68>lM>4kyw3XzaUXE}qyg&7{W!r^H zfnVyH%+4NATe5v@RBao1+cfFR-{3NESssOb!y84Lqf86xh;8-ub?bi!xLHm(It<;& zS5aAi=kpWy=%jMP*`0KduQbVRvs!TcT4Wyu=BS4Rd-QBuTUZGe2n2>2;GZ?rFYhh- z{K1|c<`Ms=^>w{h_u(B`N65lacQ`#^v0ytCTX~ohS7B;J*7tsh&@|}B;p~N1r#p<^ zu*b9FZb#QHKZQi(Aw&Wf!=qQNKBxvYyS0R04;?w=8qgISg^EU8=3L9wpRCO)F2-t< zetoPo?dcIFhhrd+1`?(>og*Q)4diojD-9q=_sIZWkb?&Ve2mXw-cTmF606z52z` z<&4-g`c3>gnY@E`-#A1hwllIo$%GybG6Bl0{rPOE63ky$nNcWTduZnDz_0=)65s)r zgz`yCGU^Yt05h<7#=Ib_r`w`fUcA;1RnIOyo&^b7N=|JpH0iT2hWBLzdn~PxVd^N># zkUj3^B5ooaWLGjiZm$1N&6|NYHMqo3P3pu z81m25vk;i#pkb|f0$1VlAKva2xN-fSu87^_IoUw2*KS{Z-rzD!&r2kgdR{eR%oY7E zO9Hi>tYzQ2k7b+lW@!EJ-lIzX{Q2_=3eGJ;vyoqFYq=2s3mC?N(~Aqn{Mv!5s{Eba zv?H++xOZGT$FlRiBgLLI>?ep%DuS$ZQel1hWA-@OooNnA|ctY9u z`t}k)fCQ2;sMl5z;**53_eA2iP~`j>AyK$Eb(42@(!$NsiNv+~I9iDRS+N)QOJm?& zltm0sTa;{?gJX3>H>VFi{OIs*aL`Nrvu|R3kne)zB-WqjEDmd68Kqc{s*Rk(>sZxB z8W*;ST-BdlqQk8F@eaRLMewXI-&-G`R1ug(%!v(h%U zu&^+)plEte(Nwe`29MDgWS?TK@X9#3lCRlua^bt#)RL%GrF6Qn+D&dCFiJE6GYY`L zBUu78U$t{eFuTZ!oI!ZrDfr>y5=JNpFpsw<8-(KqrH6h!ZKSiRb5@--)|An_&_lT> z9+3c*M(B4$-sFZKto&pj1BiZCa=8YMa>~MRf!vwRxOza;5k5$WH;HpAo)Rxzt^ZBd zr*&t)aDyHnx?}f9l%@FKotzwxTnOMpP2LqgM+iSZ!`~a3Y#{?N*4uWl1V43-{5P-eS4l+wINZGu;`6-BYcr`gWo%uE% zSogByWqKQ;O<0801?G;E@++`r@E=(Z%pf@!h^K(x#upJ~uZVmi-IRFnlCJl44#yyJ zxgCK~XKcz*Ent73fH5sVs9wg2u>Jd4Z7GbcPQxmbZd&JvVU4VNb0#yCHJ{FZxbD5G zgnn2TL@T|T{+qe}lI2#Ni`}Jxt3Wr#L|*+fa?b?HK=SO?HW4gkpo>BVkQ*$e^0y2M zs$DGfN}f5s07OGQ4OASa&J!7LC!-=5<=IowcSJ+$l)jg8>V)qGj+&eQo@FRzWYG_{ zELB%7Yjb(idqJMfq=GG@ZNt`qA&ZGkjD`8OX1FSN1M2Qy^94I9-N7Mu7cY|WAuC}Y5PpvG-j4l!kj zL&Q{aCI!&*@#W;7LrA&0ZY_wV?Kyj@s-nr3N!==D4E(k2g^;8bq(*%z4kqqrg@L%M zINVGz6ZWB@sOvdnKM$c?tB^QFMo)eBkzeaUx-zl@$ssPNH1&ZG01=(r-|*DbAdqgM zp`|otk_)ne$&S7h{9?O&S~K{{{Uv0{&k(^}7Ds5oRfd?2V%9eMd)gfAe7WdGsa<{5 zVr{ztUf$wPdqFF&JIxJgE51Lq>G$6Z|N86qN-2VJwwzJ#b1>anax$Cp(o;l#GI|8q zZmb|NPZQ&VaA&fN16Skiq?w!rX9XJA>#KeRv*AuD!!Pa~>O>*x)y?+JOc9sxGFN#s z@CO8?7-^t_S(|X-{Z+#Xc6^pq;@2}<`vDHxblZFQT;{eM&oXEk=pR&hE6gx3LW{wr z+LIWD5wW+3eQTKg5+g%G6b%SX3QnHy#y?zbc<_QQsdk!TBODSWV6u#eXv~>4rAOFX zqfyvU&-Yg^_L$9;8(LOlIhbDs8%ShQEIl`=!{xv**l$DuQnN$@huS%oY$iH>+d zk&52WM)x34tkx@JMwGE&C2@-w7<|niZ~ZlJtUKd-glbk6_@2ux1QuI&I#*4wRXw#e zFvOJgNO4|YNS2mPZ60CpFBlfDhbaP(wgOXsy2mi+<+<0b{xU4deA`*04;t*k9Eb1! zr4lC)r?FYdR>#;!uB1sj3C$o!i>~L&FzRJtclG^VVp9EaE?*o_I-ar^R2`#&SW|mH z(fIKT^H~mw2beTDBL3QIpf152+qA5;>?d}6*NBrWw%_n@S&6gzrxtQX-woKVy2O?N zjKTzW5E*X>PH=26oy)%>6TaO3Q`BjLc{C~d92VrAwAugY4_tSNVd~ZE9ptN$zyMVW z$RR?+9F;;)7c2vP%kYG*FbAIJeO4>A6(H}v!)y@a5D`mQ{;*m)ozJuM!I!3gFQHjP ze~5&AbhQiGY-PY0&(9M}oKNm=_9S(4#-N8UccCf+)ShqJg`7rFS5={Q1b@U*vMi&= zDCf(koV(lH>$>ii{2j&X?oIqJt^AZ&2;Hu~+LB(5_Z{+~Uv(V>`uT}#rAQa@J&+m{ z%z8U8T*%O*O7J^lG<&)qJFl9o9gL3I(4O1iH>AWr5?pGv9NY$mkv*&0XcHW&cNMQM zu~&lrn%Z5<$JcGD-Xyv!TCk{`D1djJ0YCr=<#8`Jgo=!I{>r%5Izl)Wap3jIRRQsplr?#LOn z*VbBE87VO1mc3k)I?GIXB$*wutv_QV}@^+%=3rMC=WJ%eeNBozf$Ap>gnvG`Kv$W2GxtVDk9DImrU{onZku zjW##IZdDMH0KT=)cA;COseZW+`uh@1MRuECKVJwbw3St`nYa)dzLS>F#*%_#EWL1N z&Ns@b)p=bpgaxa!sICTt9uhv&B$X0ix?mU$biEF_uxdK}|pCBGXFRlao zQRY+M{2O~N7CBlQjNox<54&jn9L?#rynI%+;0BT9K1VBfB~ z!_|||{)8PvyAUkGH?}!q(phNLk2!I{&>ik}?Yp9!nK{(tZH~CXzeKmx+119% z?uu+B$V0tQ>O4niVc9Wd^A_j1zcy?{a=tz6vJzFwyYNUe;P#w z=^teZi57(~?b(n1j{H5kG z0^WiJwZ?b!&$~v%g@gIDotK36u9V8}9+%%v0efw$sX$Uz z64V!Q(hh(@#iW^vuSm7l8-rv&h6f&d~6NR+1XJSL=9viT#fO}v^%(+ zHJi0u7V^{PMsTne*5*(liskY;b?a>>6PyJ`Z41P4MzL&dVb*u7rl!=o zhtoG$#H6ic-*L1(ziSWy#++lj!9r&#Qm8oBhY3P47mnwhL+Z46ynvLy9;-^{%#eti zoJLyjCJn=cjzhGyo!?d(qeL#V&Ke`Qe6Aj7QrYch8j1)Wo+$J84+Xlu;exdULYv~unq7$MCnJF z#!Q_rV@r?1MB9hZiBEz<_Sb*<66ew#{NFiT8J1c=+Q!H}8*4t2M`g=ln1esoZzX&F8ItyRyHD zX6!m|__>2+9=B=9%|l>%&#ZwgZ9}zKGOj$qrcT196p9S=fFe>%Y?&c4Hmo#Zselg)?QCtA#sSD6b zfIt0}%wK@$=6t zo&|fcq6Uun8Zo_)f+rvJ5nNWhC2Fw&Z?5HCZoRQB@Hdxop}zI>FDzGFYSjiqCY%hM zWFm21&15+LK^MTQn0j8sIE2g3W%7_+bdLE9@15V%BTWTH zcvlpLVGvZwa_u&u=VjsYL#1Lg9*mt0EiO$=)$zn;MU}&!-MP!T*@bY~Fql~wuU+%N zy|I%ZU$Bkjghv5%Mz|sZ6`QS%h^WAb3?_?6BRJqSkv8#W3w;et)aq4yKquA;esQX^ zsAwl#H)5CvIo~A<9^#WQ#2brdi;ibJPxP~sm?^BGu3e*TzXe69?n?>&zrYbF*)qQe zuW)nR>Rxn=IV2TDibV+^Qbf^dSC5{C_-rU@DtI&$Yd6-o|4z%_sy@wC+H!s>-RK|o_#+m#5bd=}(4BhPoQ&TPz4+YLSv z>v*$1Z>RK`GMn;`U;z*66cxdXNGn4PesJ6GhA~8%*~4nskcI4ujMAWjoB>-{1n?3U z`$I)sg%E#19RYPrILqc2XmS@+_)s|SY3#^1{*QbacJ`O0&7O^Pn?*Z*gCWFjvw0~_ zup1Ylv^0vK#9d`@1=la5*+cWrvi-Ye8BGy$C?!l`(EyM_6#NE}Rz{3Gu*tphs<--e zGyb-$iE2>&V>76lJ z=e@x}y^xT|$ak*)H>!ET*2s#?XwYev#xAmOcnxE{+Oc^BHBbW^`e8Kk!3>dcQ*;kh zjMbfAQs06*C5Zon1N6lae(0@OaXrO~9`p!9;a%Ch=2(Pp^~FvZ6{Om&T7nfX_*?Ac zT)*!+iNrvFv6)L5AfW^-tKo00WgDeM6fymhQ5q_p2yTuwZC8`XGb;c5K9^6I-+XbQG4GKA! z91meXE|(%MV0+j3q>qZ+h$Knt5E|fh`kN`3pU-dB$dgq3tdEI5m&h`tr+|T2EyCu; z_E3sHh6+@~y4|=C3FPco>`E=t0LPE;NYNTTf^;UTboX5AVC|!d+ zW{tZH1c8YC)DUzE&{zbKz_1|p!=9hG<$w5WMY3Hr91k)?U=R>f5b!r1#->*gIL&W0 z5pHCC1Xv+w{?{YvVF0!svst2B8C;JKv5Z_!rvlvooTtr-kgikLv!P)m()7+xH(j|U zE01$RN&WqCKB-bTLBF8my`Cx$=Nn3tO`a)BI01{I-fAIgJ>n8Mh6u8hh!iYiFp7g1 z0QircIzraD#g>K_g^t;MTPF|yvWyzfj>`qz6uw5o!`XZu8TE$hFTy8~h`>izQ6V>5 z;*Yw2e^}Gt=pc!hnmA%Rd0?JQXbfUj1f#E0XB3wKLNk;e1~hJ8kzJ@?Ca|vm9i-{^ zR?1}eH)wxB)G_fQs(XqO-nb|yX{ND(Th2RnYvi0}IF~-+JjQ!3ofl=xO4P75o`ux4 zp<-s64r$Oml#s^Hn;U4{bGc1#EBI8v+~e{7{;4z30)&N-y9=g`KE?)7`iGjrGG&n9 zk;p_3J9wXEhyvptNkOOekKc}RJhTf=;>tyNmah0LH7Y=!p*%${YENpXz^;pkvhild zRRUac)rHWEiezlwHxh@URjTy(0Qagy1#2*w#Q;6lCR-*-g^ZQIVPaGT{|VtU8zC;; z$&mDJ5kxPWXxS5E0CeD9l#gG0!rkeJLG{1rdMUnN0@lycrV^_AXw^!4$?n!o=RUd7eW$+>$>JrF(F zekVs56zV!+Wc28wX8mQOzbWF9yd2-dw;Ye*BfQdg1x>E4qe&*|+Jhieoys*`%e5<7 zJr+Fg6xL{Y8J&B8BcSCoKT-4JC;AGi<-jlDpGqpTp8+ZAPn3#}`${3pF~|FPPq@Q;k*x+bSJW^E!Ts7vAlJ!rZA zc16_X@GWN+kF~0Jh)``^l%uG@I%_v89ca7?&V2*aFL?EUn=$DB1iJ}D_S5xi`=%=s z1WQQTj+;b4$U_xR{)75+AC7#Z3H2acXhJ=Z`a%1{QEa-R9=y&}4l;EH;NW?EIvEEW z&re`jJ`)fgw-;HKC*zlzYNV{n_UnjgTJ7Ar|QDeLDrW-JIfLI8Z^v$;RabF=Il=)J|zL2CdSYI%fsDdzr zQI!nK*kFMFK*M0cCC`@xgGv&!;vj{HQ0f5^5S{@Fq$`&P`JhP@i6&|#=>ff_QT4@` zlO81L48yTJWk}LGQky3-3WTn#o$GI$fKcX3d4Z5XL>P`REYm3tADw3(43H1(fgfo9 z0k5_-tm}dw+$2Up3K7BT!OrW6&qUI;i&U)-1IGnCQTx*Hzz-awt8FAC84&KLhe7w9;WrMB0Y3l?L^2Ni z2WSgl$dIJ@fgUhSL0f=ykZ<0YMMOC90~k?c#4<(Wpddg&^e!UUd_f5aAc>WT1*C9SM_XeWNK@ zeMdPUCyK$~-<_%;2vs^*2@-l15v(u3e?U>1-hcrA0bsxmMflR<+rHNnr5Wl6>|B4p zT?aepohq7+biUd~`a$!!FY|-t0)md#PZMqT^Oh}40U5O|vexMDC_HLzvbpfH<&T!(1^u4eT zPV>m*yibOLz@QlMM0_?%f&iNMtGz46Z6k<*syaRo_<<&(5Pl#i zV4VT|2l4k1La66+!L^7Gae)2(}St@Skqr=4M#H)_coLh5n=I)!ZJqd=1!DyRMtokv>uRCU9=vIZQPn(u;`>O7y<(5i7FtF78Kf2k|L zqzR)iSme6Q7X~EYtuCr7mz}B+3HuN#t_Kc91l12@@~lZ&s2?N&f%JuA7%b08%F18> zH{0$mYes=bsyOgOH7IgJ5+tGkPt?wUw>ZkTdGx{8!Y0&R5Bzn8kss)hCfHyA87cmm zi|<>Ik!X@8+EDOj8#)vZm7~C+h%nXz!l)lqV7deu+cB7yt#}T({;-KoG!x@K`?z+=&Q-|Db~b1M?qfUx1BgOHfoG5Prb3 z_fHh|ztL>P2sp$AY7c&2I|y}wnS2*$LsLGkI>fADr0nrI8osAB31 z7`;yx9O*)n8NFXzd46Kw3!7HTfv?V>-;F{Kur1^c#Wmvxe86z3Ef`4{htLiVJc$Ux z6T7i7q&I#yqCv5Lbl{k8x*pYo>%1OlL4bfHln!b%DEjOS;6ETIn#7>UzZc>UH(lAn zbNNKmV`!-!I1&*A2O5DuoG5Ub2cvQ5?Y@FD%^En~-GsJ);6_A1|3P8V)t)$N0z!HN z3O*W!r1GNc#hEC0=f*ULR58_q_`}F`}tP@S<;MrPWP^L)vL9(VcRuH_12$3iD z^9A%DUC8rQKP*oi1xW>6$29GP)_ z6WXf>UOGeiZj^$sI(fr!J#N0^Y2Pim`3~g(o$J)7`p_Z_yod-|4@5!uiT(pl6d`e4 zI|DT+mW`@ELYqKv(HRmy5ENi?-m?G!42or*nCr^ix&HJe=ZX6^QQ$;Gkokgf^ZmJh ze87Owx_az;e0<<&-|9-zL8Ar1gNQK9nMR(7K)}d#++e_DT}}|Va~%c@R~OB~zy(#5 zz5xD%6^&R1dZ0kif`H{7T+0yo>r{)5jrZ{$&$ z{AQcdgS*f+4yG3ogdZgTfexGO#-IX%@&hy^Q6Y&FMFGOqed{=wyfX}XVn;4u*M`Lpd?-%hf2k|;G*IUFnsECd7u90hr44Fm*K5CQ^H5C-yVkK>(~1p)#xf||0H z%*)HmYYz%GWjqF+KO*wWwBixT#U`tMLotHSSb#;6k42n> zfnW26G8>cdqQ^1~^X=4I=CdyIt3K;M6pY99U(qO-J$Q7zcy!_6;Y0Wg@IkxBm8{A) zJ=o4?5t_N%%H_B5m@XJxL zo)&(fqoY4OJUkmoJ}$%-qhLLoO3%*DKI@4kqhO_>V&UTAR-wIlmgPxKNqJTkc$@@2 zs|!6_$~^t6e%2C(!{OPeSdSB~&kB6cj>^w&s?Snf`KZ{Bt9j2#pAHTVj*pL@mQ(A| zaX)?f#Kg!rFfjNu8}KZ_F+M&)L`1~K%953p{cJDytRq@mTYGtV`Rt|sWUbtcju(rL z^Ze81X{V{F>GyMnB^bO>P*5l%E3d4qvb?Rk3sk{=lmIi*i=)96_d2Ry?y() z;d7-EH9fDszP^izaC&-1u%pzIAd3zPc4dsx%h|NH0*^4?hZp$a%W=9r~+%3pR zUYwJSN2~{vaJIHMj4qcwz*4TbOi^XiOaSg%Myu#C=z)3IPEoG5yfb62LVk8~;OLu)V@4LOuo<&v; z=-m8EX~s*E-^)br^UB;y==Z`HlLH~H>6iqIPrNTJ(P1*5o8M4g=qrL8)7=peN{$|9{QY14`EH@;(-+J`?*C(LLxRbgo^MBD4?RbJ*38 zJe)gmdYE&e4eQM=N~Jq8wXL2<20Qy06D4zc4NQ1&=itch|28Ywxdo_i&+;?ScJ%GB z%?7Em4C9+CSJdWMyKJ^BLe_Sz`Id3`5aMmx{0t8k9aGG`A~UnsSWUz^!v%Yn+B2P^ z8|^i2e=TTPHDsAsBKQ@8Pikuhf)`K0-!l-MZRclwI(}@;4-R>VW?Lgr4LbX+l%6qa z_zL|EM)sS$W;Yo;E7_*YH?l!^Oz>`~8%SDsF#m~o_D)wOr$4ErrEMI+D<(#LB`n@{ zJn8&>Z_msr*=NSj-H66KiGM_{ z51u}Fyg?fV>C~sKCK?$NZ+?xG%Gg*3!Dfk!g%R)VJ5QH!&rY{>PI0dO4D2%CL2agX zX^{_8)ParY@TPBizQ|oX{+}DTQn;$}e{V?87^c}cJB!DZZ0-iTwXWxDJHOz=|AzDm zt*u8kUFCHNTRYOl?g&1gEf+~{e=`Y@`p~9O@h3>Fu{kt`p$V5n@=rxcTEApPYAP;b zOjjZc=D8q#yhM{F&!4SP;D>{MsKrgRPJP0flqt-fW1=&R#@U-AxI_DTJ+K6IbWIMDx#| zBx2Quk-?wp&1L4Jj++#*T0!zI4JAk((1`Kw?ZN>G-oep%=E`7Vu!rstrC zDx_@{1;Kg*O1xKmI96-eC;&uXIZh`Jxvo`vtJ{HsU`kS)Z_Se5m@ChaJa%3NXkURY zdsJEJm74i!S{TJN$Q&HsJY-f6tA}>{kvz4wli+^C#43M)y zL3p3sZOxJp-FfvZ0~)>?XPA-VsA*ODeUqU{oYKMnyH+H!lIN+yJqcGEzgFrKO^ANj=cV+ zNP&hI?{p9!@1??MC1$TnIlh{n4Hq#X;1e^Wj+eCUo0dVPC&;`X4=-jKZ+#XWt~fOU zP}i9;5R%UHiww7`s-)(?En56tlRQPR4WQTYl;qw|?d$xt8RK|4kSl+-}=WI&C{bL-{U_#9del!k2@2OqOBWWfC|M zseXdG;*~!9B>va!n84!Qe;mgz*D+LgKJAoITzk!m7$l^X60tT;_>P9fvmJfjv8u3c zRoTqHnz8AWhvS+?8KJjxOv$)K!5LQfp=^9#0tC}Tf;)DQl>OeYjaY+L!7am1 zg99yR0YU9eblxneT>Sxgt{VJ&Pe;#YKQ>xLo3AUU#OOa1cGH}}i-AZ8myBHAzLH3* zW3Cy#pXT$S4%%1Ur*^fimiu6;w=2}!I~wK-7zmST*}FB;AwtFL1X<7SCNZyy_OAC$ zJBV3#6TQ}w$r!(9AxviICMUQNNPr~Thxq)DHf|YxHgA3}@lkGkCf1ZE#M4&jU&i5v z6~AkEpX>K)eLSn%U7R-@w)XScr+JD>8|%)QU{`ON83kcq-uU7&HrBCKwVeg*`l14- zr;o-%j5n&vj{H+&2|ksQ@DEBoi4rzQ)8yitz*Fo3PWDWLj-;x4@&Gt9iVQw(dgUNQmC4Vu>UH@9XWu?BqyY&!fU=PnRpU}sbzL*QR9lZ zhp?_Bk_iI?JwBg9I_lQ8j;;Gj6lIuk-*$*i1L?!=C#CY8jeJzoL{wsB;FOW%_BC*z z@IoNU2ta0rYs*nF?2jSOemo7vnoW6fPE@d&D;G3Gv-aizWcK8FR;n>Oi3`>GLlT0I zm61IjG!{o*xqrnCLg)9pzN}R4USij}$v}auEh;vw{I~~dm${Ksbr4UjzvpK={}ZQn z=%{WBr14c=T&Ma9g$JCj0aByeE6$8051xU8nN{O;38fNgE0S5? zH$9(u1wE>KIs;TaEQ%-#@Fy&pPu=03yg41=QMh0okDh!lla@uAU=4ME|3FYR?zr?r z_hzs~YvYyiL+DzRTQEkrj>xd#5bvOoBO|hLaYgmu)o*VIbR0Gj@$|O5&(S^g4T8Ix zCEPy{xd|L#Bf#>41v{Cbki-a|RI(o9%}IMVmZvwA+xaW`owC8~lODjNWrb#o#Rcw2 ziqriRimPbsw+UzewqC>8^>f+k-fGe@>`VDHyTkT18K2d$v6bF_wZa}dr8FFNqS{G7 z)sOu2HlEHCCO?EABK(0)Dy(G-V6PFN8-@R+`6O3HGwZ%``RDiV2kG5vbtsi;y71k z?X`0moEuKAv>Nefbvox?KI6)E_`8_1VHTfuB;l$$>I3`~df!9i9XS@D9v=liu=P#U+_xZ2=`#v;(U!^=mO=j=bklNBO zgYF^kF$t7I5&9xa+IcBg=zU~ccdLj@>4jMLpHs8IM)1AL9%8F|`d`K#n;yo6p&A#4 zst-6G%6hdinID}`cL3heWLO)h*L=4we?Hh@0A~t;Uc-bluY}q%uD{@*;IqTVu26)3vLvQ z>pls%ifNiJ{;EyFxjW!MaU9MXaUav`)0B>6O8Ra7pMnYJakDi-RmjO(3F*E30;x7q z>a#kn-M)F(#R_rrXR)4*^8=0RY3fv}vS)f*kB0+(%;=t6G*Zvg7-jpN@G08O z>X_LY0ls((SIRV?!E$^uL+6cKi5VG(3%R zMJKqX?k{g(RSc=zuVV8exlzpUWD?-Kb!qXL!MOUsZVCs5B-MpYb8{^$1fJUM;}D=m zT_0^rpEygc2M-H-`x^I6P~hhJ?sR?uKz~xJFhn(H797rl@i1j=To z_)RiD{foREhBhxkCVy)?wFW+T@{`v3mde0k0J6_W@x)fBZS^VtHhhiV3#=eF82#J$PX^UAJ&- zzKobvJm{Gcf3F41u#?eJl|!rXTIzd1J%?hvzD9H3xUl3Ux1|f)W0m|=9oa6&LC;O>pAp} z1{_)Rg9>3>>SBP=G#)5Y=~;?FV@ZQjW^hQ@zWiZ`DG|bKsG;Kn`2}kIn{+i#c=^bNDn{}-M{rV~H$+uf0Sq&jiH?QQKBCiY!N`t{ z=&AJDnZJk%7}pV98kDEN7uDetDboiTV$2>(3^5tp4WS^!A58ie9zQ#(AI)$OGEx?5 z^2!D{ ztk`2P2Pm+LbDI5w1}JI6^9kb*Hd_641?<1AuHUE&oW1*kgvm`Os0v1mtaw1&^7|{L z-^Kt8zx&24&IBw9(-$eKd=Plc%$kC8e;fraHz|(Jn@xrVmDDGI`phvXcF^fVb{0er zxPhT=I~`=TYWeTFE3B>rci3KjU^7vxd;prU&IBhyj+K8I;FnrpHb2{K-YO zxZ`b(r8q@Vfh`X_%LimFfzN0pgT|1X@%kv_z%7nDvuo-MLUD!b=|0vv@o;8`GW+o1 ziZD$TvpwaH!`KR6jOKFn1?xXSp4Y*BzkNYMW{!^WbyCN$Y3=C6FWp*f%vNcY)yeEj zoEPB`Amh@+sl}-YdO08!@$Y~!1WnI&l#>iIw-lEA1$B`cG%<`29rzMZ1i>i3~-?KIm9f0jbsqH<)(J2pdxfn-~$ zjA_ZGP@OFaWjDV0(lI05%jSCJ9Uli!I z11ZI0+a${wckVGEFRP@C@zfkkTm7Vd6q{!Fp8j{*dX3t+Fr@s!cL>NgrI2@wG}yCw zE{b{ztes75F|no-;t{R6%i}y7XK;MDdU{DZFvi|~M5vb4rDS(BjCh~47kb#ch?8DG ztJI6qcglgsuoG3{YX$2qWGfKd8jmSl?}aa_VhHRrr3&j`VJy zstRxhB_u#kBcRLa*pibqG}YZbg#3IvXv9LIXqFYK(WGm<|EoIe(FVm-y|rmZE7=i$ zQ!j$Z&*nH($FoIuB{=w$p?G@@56P_4K@ZQ;%-cps8tm?7;kCOr<-bIAEIADKuV?!? zfna*D+zvte*B3oF3dBj8^3RrwU|?oUqbP;`z16;}?4Dbr*xe(}%BZX`PFcP=IxVPp z(5y1jRHzRYaK+F&`_6@<1Gf2-h)|{?(DI%>M^e(Ij)_+IVkKKw{?*q#Q`zvU*= zvURrySFWMrL?Pf7Vv@V!$6)_>c#kQhz;tuFz+n#^_>j`pl$cbb_jlr7Ud=0D1Ee1| zYSTMNZ=FW3C?SSql@AJw&JgT8=4&oTuIrMo7gZg8^F8m~cqNy`=AQ$FZGnNd4Qnov z$d-7!v@L=Xz^{^0I*7uQw4;$WHt#a&|3xyLQP;SY8!W8nT(UnkiNJLGm6C3JtQXV3 zA!uQbM)fB5&&*EA+f2}7zf6ymCRRGN^p6k>-B%`!f1J;DD0g&hkJ$dwHB|%cS9$r| z3c_5oS$zqvqI5)7LiCmRz$*x>i{98}55Ty?L=VQ?Z!OT{=bMC(d=ya9`+Y}0Ix_Z| z+mee+A$REUoo&35sd#q^_b{a{X_$n(f<1i#27_C&?36s%{H&_OWv%WNzRO8JQD-2% z!{ST#(@@EyJ}O+mg3{4$I@w5*R5>(!(dTimJ(!HxLAq&%On^Co+Q^soWc8iX^unD>SC zNiuMz*YoZsGt4Ffm#xQQ3RzVNsWrF zROy_mf`)AL43`1=Z}e_n>|}w$p36ACkv1N-r2P+_L9&0)hlG%nzhn2LDTP2vX_~nP z9(qD=*V5i~p%5a}lVL=GinnhFr~Fxui0~!BUp<{)jvl5k1LNw7reD3CebBXf_e}Ra z-|9tg@pRox;DmN!`nNn20!)ScMzA$Y= z;t3)=&1v7s^PyCW^0f^a}2D# zCK60ZMJ76I#tle>G0a z8B!wWNLU+I%W)|cw_x1!-)#GR(<7MWIrh-q&+nz+)i$0Mc)uIOWTMLh7w+igxcX44 zNf^>NiY0K&^CQOELq7|V8$1{43!NPi%LHU2>Mq<=z_5EQ(qIL|Pc6Ec|NU_eKRsiw#oWb0$Z%v}Y1+a|2U>8G)2Ekhh{AuS(x$4lf&suB#z9*Q&gMoK z!~T6WRK?APr75?WzjscI;VpNS$YGgbEV27oYa}7DdMf~sL|5klpu6c*KgmEgg# z9=}Dh%l$S+`^C%xw;(rtBIAp+d*4@zx-?cr$JofX({7M178<8n-hAG98diG)quO8c zjY2zWo{d)~HZL!n$tMt|@A-Bwfz-*MB<*MeikOEV1am5p^5Z73Do{pjmzVNUI=}iB z=Z=lM_dwPrL528X+~5L;t`LHI9~RyDE(y{^C@hC3^rD~_hRb#D!*>Xv;UL9NqO)QQ zG_tptS%_1N{?qYi6KE4CP<=73T+nUV5ky8UiPLRMvv{iVh2GLlJspUk z+%7y>AksOEP3?pyRvq-Uc$DpoGlvDW9`Jj1MO_E}a*`KlYam0_%ThD^arc&@ z56aGhrGhITtF-D*HlL1+E;yI2Hm;!;{tE9@#QnRwO)}suW%;?A4;w~j6ikyp?))xD zMp3OY*Yp+5q-?9J_Ezu)cpxFn@Z z=8s<6>%h4$c`Z~|!R*!q8{JZCokc zSG2%UD+g7T7mts5;qI=4z=?^f{FfCbh-&eCt5c~nqCu@vNfFNbcc(!W2IO-5Tmd>s zEQOV_(eL=DB}HgBCnhv<4C*SlHulIaFxgDh2Dk1i^}wDk>Ew&`8e=Muy^5i+e)8=S zMM&!<2+v=NL5}1;p^JYtqf(gvNknRqRG5mFki`&e!|-X^t!B_xkH@4L5%x|IymVlT)286*Ca*g;ZiqW zIHFsZ5x(TJ5g-SAIKZ}0nr|b@m3oKp3!qTfhh3uKxgf{QC5l0IFGR(2Pk*BTGHuD& zv#OZ#r?z{0^C105FF(~LWz-eDC_1=9o9mmTvhNwl9F8r2nG9J!qpbe>M44oYyB2AG z3;Z~_m8jVGtd9)5oM9}0jmiR*pqs_#kFc(jV(3w84Guea-=_7iyAT3UiC`4eU!v~m zt1$=FQJ&w=_;u*>0r0Wf%t^>NeRUlXe9*>;eOC2WO1}Z3?MY+Jz{D}VYp6KN|-PWO*kC$R)QH~fRySt12DV7LWHgO9a ze|~dbarm|LHPvzhO-Kk_#{WTCw7ePkgOs;{-9!**6p;|_F-xXO5t@G^dJM*4uSt4o zyVSw^`M}|R`55dq$n<=Ae=cfOqVIe_j@nT*JLmSPRYI8v} zvRW&93nfNJ9aObvChMDFf#1Kg0?C7JIr@9O1I;}zJ$pCL5Hw0#&ie@wjb_NZ#7VNr zZ~F2h{9&LB7s&qA_61-f*fSLgG+H{=9vBv#SRKEt@o~L}FvtIAQocYrZ~`VLwOQr2 zdF%Z`R9bokt7n)rT_TqtMlS{s%|^-gE`mLDc)CK(bfU$7{LY$FJr&!hx~E~;nfOeK z^yXrm&y`38SvD$@da)AfrFaP8|>}(+r9NN^mJTLM`#WPd|N_E4C0G2y>x!GVNpi32yop z`jzFQd2+>s6ys>ikGCuQYyUcKyaT#AI|FJceFDAj@*f;)xwE<*74!yc-KfcTSb(0a z!#wI$9fM88EqxkdUW3vc#m)%$M-iRu*PUYxF2yt6-U4i&Xd4LCnkyfKT}s2iI!Wvd z4Y+YF9h8ApY>YKCWuLr_b?NkV9|S6WSCjb?j1Gh?<1-fG9zk(l&cLb;kS#jTDn2T& zjI%u4fnEI~qlDj6PI%77@F!n!sS*2{K?x+@JZV(4ifrHFTf&T9^Fv+dHbj3+qfDan z@8zEEJvphKL}e#rSlu$Zb-`a@PF0Tt_;oPmIEY+|>5YRbl=~359OJApb^j-Kbc;#k zN1RwkJn^Bnu)NHl4R5^dcp`w_m*qys-J9bD5PIwv4)N($QIqH3Uw|6{gW3hC(kPKr z#Y25#9ziW&v~8a7?98pndeTasx7oMCBz=6ntba7ji8$DQ0FY_a2hoDdV+r#)Fu;86 zzDu0W7I`Eq%>Vq$?yC>SNDMt`yL#QTO^6@EXr?%y*cTifzfg31wMWU?W&xULd$dJV zQT{46mH1@+E4$5lJl{guuiTL9*dF2IDmyc#Z7~(mgmLBEIjE;sqcnp<)S85T`A0?t zh$W8Aw}l^AR3rpUXbeVvN~g-^oLON_(L!1j<+Lkf?*f(e%PeJ%Ao5x;T)D2}WgJ+I zP5F=gS>K61@>4;l>eMfRbjJwLD)_8_SmqI@>?>UtwD0IR&ljb8SdOL>?cr+OI=^5m zily{BlVO<C{!skVB?>Fet@iL?Wa8x8g$ zQn)adZ+Q^tAeP2ac!`3Zqi+CzM9kK4(ImL8S!0T4R-GPD^CV{ora(+tYh!Syljv{vL+CDBI3r38Q?T8?YY(h!K93XXpVRz4v8rR5QAt?#@_ z9{QGTlG{byC*wAxBVcB=+3k;`xAykI4F<5Z!mrZ~BUz1m4h7f?rg5%&k+B7YY+Wc(INlX3Ltwoc7 zpX~2Adz|8`9|9SZrX38<&0E%9$dB=^9fA~JoD0V3>imDZZ zG|5J1ju-p`H-ppDkvY&Ce=o1$_F$qesV@r!bf#ryf4Dy{ik$gtf86ZVcyl(pBTj># zMVK@IHTedW^iQ8X!8%Y7;@5(zZqs2F)|W*FgjYV~(q;c^0nwj{oj9Jo54p|wh}KDL z2p-S1_bQ`EI`4~Dk%s}^!40x|-_O(?(58d8H`XM#u$?7} z-dnv;w}ZA{%#k$aevZj7%knir5>?x?Ob?m7GpmtOvg0VB&3uw&)|+lCx^it3@N>cX z%t`8Dv5QblXpCR01OgbAEoPTRLcY7d_3;#+s(|hWr&#i6^MATY@qt(P-;7FcZC~2h z9}8)LbM>U$2JB?fyp+LHkopLHuu(tRX%eoUBa~>)rcPK4$1YZ&gJ$Cny%yjl@YobR zir;#prZM|-J+e|8{Lnz2QVXPR&*T$ugZH#tWIiuD1;q9ztW5{})=?_w;`sVbETBHw zPW0%}@WLXiAC@xVCHj31Yk1PpQ2&OWu(Jekz~6~@%PzFVna}6{XZmAen9#Ic+?YFP zJwUHCmR71e^@T=@TV#%q`klz->D{-{vf?U2?HW*>8NHWHvfi7aTHxhJ!dh`=4p;rg z>l1O0(^b7=3DLJgdO{lcq8x@*de376;tJHAlDDi$A_rq-l;b9SsDl8#+_7*XPM)Pi z%nc3Cj^gk))qs!hogPE*nsI0bEx&AukYv`CgQP^yR9}+fzYT5@W8Est-xO48douIy zru(L}cXs!I;kv3M|I~Iiq>7(zx3FP<7Zy$mPb@F?Wl6jmZiYyYO{z(6R`~VQiS`_X z92laLE7-hbpL263i{juNKLnh81Cntz(gq1yWNp04K|9H{ADn@$=nS9d614H!HHqUZ zgcUUoqTJh_8e@+z=;)^(Owa7RD|KH{r@e&Yq+IQKk?aFlVSxsC7_7T}NhZ&?x1o4q zf?j9;I*6=ctK-hwTNWCqPH78m20HIzWa{Nvc|?Wt(tUlaq?J3X03R7A@WP@#L@7tv z+O|uH>SIym3nA}6{oBfoD`M4Ywd)LPtv&5k3$WbZhXNk2;4kv>+YChooJ|+7`JTYL z9m4Su8bTmVv6>s)Lx#ZC;iqRJn_dbcUy5Y znEC2rTTrHpmeZ+q4qbuS&wB3h0~09=&i$*|S0Kve+!_KN78Sld<9d*Hr&KYep^=C9 z00S*{m99Q`tWED5&7?F_ch`pd`OQ z3^8p}GuQ`;CeOUJA8iuFUWw7%7#66+cw2Y7c!u@5j z2I{b!Ne&MIkMwL`>_bbpnXqYL001l(ba^q|s{8jMKTl6Rx#nd2#s*5%Gv1w=$8P66 zO#FQ^Jt{M`RB4)98k~!18t^ZS&5lMgZzEMI4VFxZc}K)0rGoUi(t=969aOZOi#lOF zmk``3vyeByFM#bOunL(TTjLjS6VMcJsF_4lIayTQR%+Z{eh|KM^5CF9_$G0e2ioJ> zjwX}=z2^17u2KCKM2snC{mqffYJ>5QH{`SA1G^eS!u`yvzKmkjT$+3(fiR3Oi?z_F z<=o%CZ&O~kgazAqZt!Eu5T;|+4fG}E>;+5I&frxF5BXm@%j}hYHzE3`7e#Fshih{d z5NLV=)oZnv8)*Vhgbhz3)WCe?W7!-_28daBAIHLhf3Pk0K94Drjb$`$Kij+ zhNLSXAW-4i0}`{oAP0JyS(M~4X5x6S-RvhC1t_oA=>^8J@3ENN=_sbSD2tRr&Ag?N zYXR=d2a~_hM;{XBk!kTQqlb4FbXZ>zfwP%A;W7k1>MIyyW+o zS)KL=S@pjZ%!YFM8&NP@K6zRN9`XyYZ0_inWRO6XIz`0CXBr%+Cv>~h<}7Qe5-QeK z;w3XdLJyL6!J)}8V!rqzkxOSr>#?`!=wwK$9nNFFjV=~8K0KW`0@og+W6Xz}qlm;U zA^Xt%E;o!i5~l1QdLbg)DglDuJ0dt@a}`#Y#I22u1=EF%>A4cRdh6r~U)Mh+8A0-L zXbS>^c>Piu!qu7T)iE|*e+%dmMYHY0KKrmzfN9`( z-3RlZ3b-1u>1OTdw@z3o0<=!EgofE+gg5cd(t>t6Kk3uOC3RI>4@ZpO6HEKN5-pwu zQ=uHRxY#Qu@2?jJk_s?nR&edV&M27!b5~Q&la3$$5ch!0Nx<60I%>OW0221^nT71y zQ`h|Wd|wIIklY`_)VV$NYkxY~sfOX05cX3rb8YN&-q9zq7S}rPgS*tSM}f!|O1rAg z^DpKv;QOQCcbcB^>dX<99beOFFn;!<|8*ywwV!yCCJ7FHSrP6?m#yWF&(Au=wmbU! ztqQ2yWFMkbU_jbw-^GH#r}iah8+=un_=h3UQnDaCu@xILx?*>{{4Gb}ccb!e`iC+F z6D`eNJKEww`Ndbc49v_$Zm#>27RgzSJrT7HvKH2Ndq*!KGeX|NcEHd3zs)}IwsyPg zOgI6=l+p^R`vWQf%d^(j&tA<_Us->^>{g!qC)Tw#Oy(ODk@V^w$IZneSJsf*=pZeD zlUW@L)WlG46vx32NcYGC>n#3fVO#09qOoeQyP>(pAMaz8qepSgX5|l+fKu@x2bbXE zx(y9C_{n8UCr8Bgf$){e)RcZF=F(!^L)ZD#BhLdB{L=QnfAQr8g`$77A+;82d>B9Q0QLF$#Vp%hZD;+!580)v32J<%5FB z0JY}WFwrOnsrbdd=so&<3?nDcdY3hXU}=Rw8q>8hX0qhEB)?w* zlIcK0y4^}gW9{)*ZEN{9MgY5;b~G(pHZM`wFbN>1$oiSxZ+-J{fE?_(;ms@$=rgUq zODcK@4%+;>D;A#jjv{Y}AAKvmeC-(;4A5u=W~w2V8yuR*V&V@;3Cy#tiI$kU;gdR; zsORE(?sxFdcWQa+Dzg4C0ob5dT9g9J0h-qR`~(cat#%^lOS8-K!T*G%q~MXCX*Wut zfZNQCUN~~Fcl8Aeo$JZ@Fiyt7$=B$;198s*G$szkQ4)X#JZpK-8CWMx1xKf#xcyU? z`KwRuPp~o7;83&+U5X-c6h8VrkFCD%eHJ~;GJB$ucRhW9d)bwXLRzCP_fmi-fWBgmaf9`6{Suaxa zG$9p8XP;0W?fSWacgq~Rs%L=~Pk%qWjLURChf*1a1aA z)MBQzdG7}>lVy&W1FG4#rG4DpJv=;I_Cp0W{4R-Uox1N%C$~>dK16&h{i8i25rmb! zocBlzqRD0c`hJ0el5Ul$?E{zkB3WZ-%z|Tu7KhI<1XoEV>&LQ__jZ|7mP6L#+Fj>x201&!NK`2dJ!m!y)o2x!H8hDLIN1`6``C=UYcV0U7J}? zGAH6{g(RsGD=&-i5j)0PWNRrZS{t$H%Bt1n>DC1Ip6}iL zA={Jc{{&27%^_NGzjDFiQ#o`NNNd%eeTqhLY8)NR8bI!Ia15h{AIxxpw_&h1mdH!x z5Ax>k&?}*x=2PifFLV~0)>M>9-u~|S=3{-PoPR6KRp^*Lyn9&uozY-SamLC5{BuHW z(nXe&nQ6KY2%1t^k1O#H{K2q-v%K(`Pk`1ER~cXp7UWF&S0k)e-(SXb5V{W~OfR^d z;aaaZ&HBRc90O9y9^4hs0!Mu1e*Yn-nE^3!c)@BWQ{m?FHCa;Hw*CdZJ{&n7d@s#54)ctdgd9N^tqhMUT0iJVd1k^Qeaq;HWU;Qat;+7Z;E8WO*z#9vJLhrS}%u-YnI zN?p$A&pZLw$FPv=zaNeFXn<-bM!B2*XSb5`>(c9lTI;YRui{UW@wAZAspX{!Xws3x ze#;x>?h>Qmpfp8{rh+3gaqMn8Qmk$PSMO@Y?NjRV+}Cq-b@nmD1&+5y+_*UEJiA`8 zV*4pzBrB<{cHj4;$68zUW}{9NDWkM3il5}>RrQIzQ)w21o&7#t1)a4?N`VO-9W0i` z7=qE*xyf5bL3WXt1x1i_<08w>i6m~de<_IBIe*fWH2h6QEjQn729H;O@WN~wdKWp2 zxh)kMA4xuRXlT<~XseZmf@=o2NPJ;iYTuH+mid`k=C7xFg`V;4y`*MVm*WOytXb^f zt*QaV=^T>CtfAH`)ZDsYYtPFj0Fq4{0e)6cmfd{^alkxYL>*d6UiEugs2V)i5{_gD z778Cpk~)HY#sW3h5^RKk3})(T!5c&4tRlEY7m?U<-)(MY>Ejk|;xEd7%lRrNSNcD% zh=eX3GG|Eb;0q`}^`!4+uVuqiHjx(hEGF6E+Th!2Q|yUWeXVw2txhc+?XcdE`w7#nc^<3C z+}e+rpZ^|lKY`QRCbDY)NyIXDG^Y~UnvPN%^RAnHo&G?lPDD323Z?>-*Uf@r+gjT* zagUMxn4d!vOV)K`Z<%~y9mmGQQqb8k@T_~SBO>gLG5B6XIw@Z1A4HYK&;!CNo|^P; zX;V%|~F2f}w68g6=VG+(E}D3D%Eln}RFr9omQ#x{YMn}CQI`A>mU^mlFZOI8y` z3r@Qo()}&~T2j<ysfrNh%mbdW0-t_3ATj)54T1&{9RC)U!Mf;_l8yGwC9j! z#hE37C1KLr^f(4 zG2uPC9uxoEl{h}?>x|j?gxd*1RhM3aqgxT^H;VnZOE;&Q1Sln920?E!_ryInW(X3( z35h8^5Ea4A&`c1<24$)E%}<}?C9979>RWHUM-N3TGjzz`MwU190;YnFIig&xv*!;D za#q8c&4CK?9kOhKQSJqSh91nkxmQfQ8gD8SGD*0R}tT}v$t=)=1Y31vTE$fZio1GUjWz=AE&SH}5i_)8AC&|1qrWblf*ImO` zm-4O<^_i8gY#DnF24DijI1t zOeu`+FIAz$q56$Sv2lzM^JhG(rzH?$S+!4gzR0?H$Ie4dYfKYVflEa*BNV^=Tq_%k*EZ}M!0X$&0@I?UfNkMh737P02$(ePO9q~i%=p0cR?`gU zZa+}~6~}vzL2Y}l^B{L1&|V6}NEimQ_g!9JJC*R5Yg}0=zwY2{R-|}1#{=RMWiI9x z75q&8P3pms6Siu>6GQOJQZcwM!4q=No+JaiA;uT=RZoJyTsNk)(1fTUqBDOfS3tN0 zA@dqJdwU|jGcA4nT*=^Lx_4j4(6Vbs%AeHcEabJJYDABQ>GDYC$?@M>xNs2OMz z>_o(%_4LqJ@t8DX`Dpw#s<u7aN~tKx|oN)8i)KmWc=9jsx23>nngP)A~sXbf=|q z;8%*MetiQ z>em4o+lZqA3kj^5y?Z=G|VTg~P* ze|}vhjhxiP{mX+SktI3#d!FFKzNJyO9pjX(jKTA3)MRuw-if7mcu&nidEm?Py!37J z!6~cyz*ncY)9mo^qoj)7odK4c*puQ*Au&wz|AGJSiJY|W&fg=&R#yyV>F_=B;f>VD zM7Yjyu}^;Z`(2b6i@YUPDuDTgl~3HEHI+bJJQ`kGs;sS8#aet3BbAU$@@{;5ESAbP z1YZafD|jxl&zoDUAzyBbDV%JkpQX06wXTGw$G@&$DJU*gA;R~_g$HuXf}#25d6~a_ zW+P4-yb~SbX@4?Hu_GP|Xo_yVi}ok`=hAny5k#x_urjxW~P5&knt71apaxM_lMz_1lx2c|`E>NacjL!X@ej2)Q|*GWo+ePOFU^6aOI zCQV>H)?>7*BSqrKWOHxnd=67ZW$^l|)AyR;8tu)|d;WbU0gzG z#nGfX?BHcQ2RI*IY^WBRtaZOWB|YsJ^nV}poFZlHu%sHPsJL`?uR}8d2aRwk|9Ge4 zscxf}It1VR$@Zn?z`ma&KH@oxgI*6HuwytsyY_4AWd)`W>4I_?O|s?Y@BSsO-iPR@ zt6Rx}!Ww)6N?Wg~a|e=c3YTBbYu~Ft#Izi~h=u7a~@`fg}LG!v<+ zkxD%rB9ra9V01lc(l2GC;IQFBvNBXjThjjabWMpTt#v#EUjY0)oGm1}wK@|*r`(+V zBx5YLR?=wk!+fY1@0qE0b9A~BX@+@e`{o0}P-G%qKYqG>I8F}4uENBOJt|zEm?i9n zP25X0P(FSTR)hs3N?NY~bFs(l>NU=>MczUmuAnUCAiI194`x^UfE(zD66J(=p+Cu* zB>qn)B4Hx{1B+87P+GqVZN{G=;A8H?XBG*(RYdi8e~o|`q`7IUY@g-0C(78VnjDK=719 zviGaWneH$ACk~49ksO zb47sgtO>LpBatXfh~ieZbD8X^u=1ZB^C`#TS1e|QM9M(S>S~#M?Cw0Locn%hNbs8l zA>X$4WRVB^Hp(RB&xNU=dR|AKG;3A;Sqi=cd1XxXnb6ZIM^=Le+JMjZx^~C6Smm;Q zdyww=kTKx60=xXASbTxKeRXx55)}_ud$%#0IvVw?!}f{G&(-?$H{6J(_#7=mPJgYG zR?z2TZf>I~9#Ts_UjeA!q9ud8Y?E!}s@r%B+Wp>at> z^1Fc3ot?w8vzcNxwg3tPwEQEQV&M~+{w48AbDx=t>j4%?*#7G=n?dTrg-iqo(`YKK zWYzDdt&gN`?9j7q`Nb*hv=zG+zvgXZMU?pM7?RzNvBoDkqs#~zJ@|ynihm@51x<^Q zAJY9c54cSf!mJDFH62n@>sL0@3ND&`Ig8-!b>95V{xsF5hpr#z7CdE{%lq?NcWJ$( zMAGWBEzN&)rZM7x{;{sLpLW7qXdU+;t=EZB+v8H|%P4x6mg{FhESnBv$QbH@9!Fm!h6&;q_W`+caL1$9?RC$K5MLd z)~%~uL#k6#_u?^jrr8x1O6zRw2c4rMIx8#dQv%uEVfB`mKjnU#5Y~s`PXGJ`JuBpD zD+K0GP7JS1%s!Qg^!ec>)O@=7{`TKpH{=xh8YpS?gq*j8^s`8DYRp`t&;#ed)^N5zbRs#8P@z z56x~!IARX8xc5$YbS{v74)dmZwsJMlyY^F3$2v~Ug#k%;=guK-^|wKwEd_@x?2|V% z`z7?qP3Km?5C9VzG;gaDtt^}f;1d@dRakf_^CbG0FSR{ELdfUZ%?CyRTm5F6v)=2R zo0$woJnK!F_}^p~5A(h?!ezTzp+9}%C0z#x;%PhnK4X>elKN2=r#mdzcR(4?xD zW0f9@Mq*t*IEC6SNv)CybCvq$I^YAtbc*LIv0bZe#}1BOwj8|{8QUt4 ziz=&M;hmb&DbpqPIA#6n1&$6`jL-(QbCuGCpUrhU!*_0(Vmwu4Nj~`3x3{eG<&%DC zTl${-vlSko4rmk_dmMSh7@&<2G-I*$%~$COd^yzi=Ju@+VOZm_CV_iWcc*^Qj5#15 zF!x&>+ zxI(_Z?toks;SPocZEXUtAqGGU6e!!4e%*p6qm=x*?*8 zVb2n+_l!JT7CwO3crV~Te@Cih|AimED)f)SZ_QMIW4Wi>?adp2f8v}+(^f&&M3#EV z977pz=!kDoSY#JIZ|}9lYofh*ClH-vA3>OeQEcs|K z&*!xJkjw&#u0hVIxTLIw8%hqSX&tWdqVacYnx&B6LvkT%(4CYGu!FK<$+Tpz|# znpHLAo&oxUpeXloq$a@)yEiy9d||JuWd$zoVIcx5*+kh%50(WCl|%F~axEXgGeAbp z|1siS?GW8=-2>XBd6n2(hVpkDa`f7ID5^g8VuCu^j9|`DRlaw}rhN2Quk z4U9`-B*(-{OJuNn_Z(0p172#|1buj zKZ39yBu_6Lfr384u{YoP!7-!K9LrB#()1m@w1F88-WkY?+3&YWe_7fBL5_IF4qm!y z<8&Kp_RCX*i5%Hs?vwn5anRq;4*$5Jj-jxIiEfw1mAsD5?-k7I1P@c$V1m z9^~lV8!iqi5)$jWaRrW1zbrY)_`x{p@0g?B14)E-wGat{0N}O&geRx`VSRSrQh|5Y zMWp)V_ww zm40HAMIOAUZX9T*g(A_fzVwsDo)Q&QN3cC??B`BPbH{nON+gf-{kZe{00Lcw^4oG>4^fErbyTh>o<*vmhCU9hT*PGKAM?t^yABYxs!0L+1G9x*z-Vpu7v8h<;4$x_4qki%@(0UZm^M-s8G zelLi0%`t3-iGKU7G0TIu`Fnc$Ans)k)p5~LlH_7#IpnEtK73(68Qz>3&gR_=223Ap z#7^g;f=xlg)N`>*uhr9p7lrJhL~G-)72Ag*9SF&q&Y#bYV}Yic+Fn2jfoeV=`XK!oAL*i=l@hH?XbolN@+JxSBc>Yml(PRGU6Au{WCPcg0 zi6}@^s1I%w^fRdo*C`E8Zn5o;a_TFvFHGaG3q;_16gRAz3e56v+QWW+yw`_UwubqY zswd1!s+ZP>+)VZ`3N@#~JEP&)Os?viU6ytOfm>tJi9$?JHkCX*JbK@GQ28;Too4#WJzEC5NlqYC7H!uR?ab;L(+3{q5FP$qM-fCh{@}naW>t_{YUNFoEb*^@EB{7 zpbdMBx$8fvWLF2yX+_WStL&9;k&+Dx+4p`wnpk5eF1F8`)A0T!IS)7*po47yY1&c7 zHpcKVqkyRsA$%FjS~5qe-tSoi5wH=vVAO>%-7BGLB7Jqfe`x{tR-DkTaB5JK^~mnD zcUl4^CipPfm8n^!b|B}4#4476VhORrSYYwk!OV*8rPxW#xw7V$_rQ_(rZ4&~3Xu$7 zpsRqh-Lz5l!~ed~YzuYGv9#Xm)iU|ViTCg~pyP90jP-NrbjSQs5Bl{OnTyjMvHUAm0+^$WKVvv}%ZWPymnbnCY~cD2^eVszptt*8 zJaOBS4zC^ZJDs+lurn{<-V9V2orN#c@Bmq4J(33Uy1C@Qop{V-ZkZ+o+!=t)UfZ`M z3fUty3DneIUp?T0U$L}RB5^>!g*uRHzf(uTX9@QPtVf;=z~`DbtCJS_&hlVoU0*OI z7t`6OwDO@$BGwa8ePAv2k+l@L%+43N=m*ZPzps zb)U6cYX@`OyEan({SPKx9hFJWFXma)yTiYC8xKWQ%%gX8e~1;fPC- zi2c*1=L>xO<*|bzkiE2%;s`5q=VZ_W_4RRX5)0!f83iC@Y%{5xs3p;{`R}c9d&nv7 zHBQ-6)7Ly(#CKhj)6*F&bY8ct=M-e2kc1c4iqO%yTHS$S!A9`;FEpsuu~CS zX=ccm9Sr|}maK3fd;?=NRX_M7v6({JgEFD@Y;yKjm9}EGMx}g$ zPthnNH>jE*pCMOvu%-W0$bJ>27ew|95JluhN3SoQ_&V>lV0Hd#B-$Z1%UMVYsks)y zgY$5CdVO){+|7s3a>g`4md~G)g1+&^&#fnlWe7%ezQa+<_+~Iulb!+(GVp|Mi?BAP zeV|QC-2RsNpHeBN=me}W*P5iz1lo{RGwFkYlFX;3T_rSJUNvdDmVEbF4Ob40(CQ(AkU>kxU^>+&k#bZ^~EY@4^`yILY zkeW&ZJ14NMW+)cCRR>L4Iut*DnmAvzLd$OOEqYtIc!G2W&@s~3R+{{`4z1Ar7Dk6y z>ZO<;s=?O9zt0lON?8Bs%(M6r$#tZ2TEJw@94{EJh~}<^ZfjeEk(LjAlz2zPL=*Iw z633H}jlk$4qaMd9t!1Z^W8IQrd9vFAfqxjM+o}uPrEUIT{`34tq*Y-_Kw``*0v`c< zC7}FnK19y8`6ZIbXIV3(lZ8&FIlR@Z$qX%s*yV}=hncDR-=_JYOC6?IcC;haB^+@K zB=bA|Hh5N}s%rD6Dp_;6^R9184hGC&B`4+MrWc>;iGx?i!tvJ^2=Nn%d9=4QthPm9 zA5{l438OLd8fGKUm7z+_X?B>gtw$X{`W~lO3{PKFg{ab?mr>L+)PN}|oZ=~Y%2&7& zP17$MGNr63dJtB`;LfDi2oG0;PBUg@SqHP@a|9H(ErdT^@cnG8-b7VwpRikK+(0ly zzbf`?L2Q5sEH+NDIVGH)d}L#4v3;uriw>`z6g2vZoPLyJKYo=64t~@MfgHVl0sM4> z6!Ra0_8G2(#=fuvgEDYMK&bp zkWJAguNK&XRnjJ{30ROnh|$^1rI0m`k)@E1B3amzjI@@F=+3lhH7Ks*j^r-vCZM5re>$#@nzRt0EF4EXK81k-uJn9q%q@a6{h5BKg2-`^7P(A{s z7`B@qweXeOUDc#g!%Xl%6H6l*oOl;03{RY?Mjiy=>wwEoxSmF^>7eI}k9>O}f1vd= zzB54p|JIl#1ji!8$%*b@_%kcA2!PjKk&n`}D7S^w9cb1tSb09Guidp@RC?b*UJe}s-_Dfuz#T`RASX~pUEt8MK zr`uML-iIbY%wHTT497;k^Ixh{p)(#;t9(xg%Y;9;}MrF zN%I05B88-I6CE_|8z46h2!^nLWzmB-UL*ELIvg%^lwVs{1kx&S5l~w?$;zSJK&;)r z?q1vD{8l#ZR*Y0+Ol)Y=gMZg3kHR++@8sV_Ffg>- zeH&{|@hqzoxq^_u&VTNglQz690lw&@mHffCz#bEc`l3nnv+X0yqwhZQG4337RNRkX zOGPDcIVnB0wzU{*Yq2>~CDv6dWGt;k2fbj(kJKEliAaNR4)d`3VOf}g70{tuF|>c6 z3{=Ah0}(O3X}_lgLG(}6^R_>e08yJI5?0H_qsOa~(%)N=e(or(fcM{I5Q<<*@db1k4Q7 zBsT2jUblV}-=*LPZ^lF*E=`rV8DGx1R>)lDNN{(bVF~j-M+{g#ELvB@eoa{sy~uy+ z+Yl2yJgcG*j!IC{|4{gWwko;$C7!(V2!l#Zx-i^bZhxf54C~sq)|Bm($mXbfqLoZ2 zr@jpjcp;XUYtaqvlPZ~~{6muyAlq+KhewfEBk^rw*mLRRmHG#vO{xxvuST59VUaa# z#0&5pdDG5}>jpHKffa$p$^e~bKqu8O`{{t&3(8;uArJ^R$^IeS3fE)6)f=(Uae8&i@i>ApJRG<#Bgk#r<)iiwAoGfijmh{ zeD|M20lwq9scfNrm4`V88GBJd7=`h3u{iMLI8=)x_nP4){=+KoxrYN^SZtYh?Czz# zJp(%lp@!TH+vFYrd`p3^LSnVy3MXFnoVXL}aMva0?B0I&75Ca!h&A2u~_Ju@8i zgTt!=f->lL5AK!@txM5<9sjg_7U*RRih>q9+_MO#0-42243C{{i4%toE@A++$G}fa zrbH60np!bQsXw-`>Rz~&e0nnblp>D9p4s{8A8(FXEi`qs=t< zUF9J#cXoI{1C!{ZN^M#c)U087G>@+3&#Vz7GaXd<5&zBn`dZP)yMt*;w$a9ja6Dv+48%`HKf>WOh}x~G z4G5f}P)S>~i5>RbHR#DN%zPlJprM{L4jd2`By#LW<^-q?(;5pUknE_fk#s;=>4q%$ zz61;^fTyvn%HR7*b>)3Oe9iqn_%6CciPRkwg5u(H%3{kV6Xkf2li6YQxw!*h5@yin zg>`4zwSLE)^lV+hN2rtO>_28+OjSYzWNpzxNTSC+VYLB3>X9X-uIAN`&MdFBNAWch z3R3E`nDS9^!h4I5g~zJU@!#OS5~G+b^JP#Meh!uye!~_YYs~W2(7vmJ1ggy`Dj;O{>9SQ z!>X_G;MwbvB{y2KJW`3 z*W84$+WTx{!d~oWl-ILJft;eiZr5~aD>2t~df1}Nc09_TA$RMxaZ~pRa1(|s2{4C4 zr*0FSd+hqv(msTvURQ)$6(#>7f!ZE*@waBjXJj=t63cC9I*Ju8YwXVdv#p{b1R2MN zg>e994h0d>4bn{?QO%0X?;rdYz_e%7JW1O*_L+TP@a|P~V@OXyjUfC?d23uz0gbhl z%{#T3Z8Id%zj>7*ugtHKWA;It2Y)!W_{QZ)!D4MDHA3pYyGSs~pAYGKH}t4?f$(?$ z(@0cGAK6S2NJ9+gM4&M>_+N3qSw*ifj)0_=$n zqk-^D{3(sh?SDq^HZ<6z`Jf%<>3{KjKlp!>ZN9{W5tkQ}l_b!736J27E+5s%emlCM z6Fe{A#)P1$iCc5_dq+lAh{J3i#8ZKYTAkTt_^$Po8XxbRwd0!%78MzlW}XZD^;CPH zsJ0_pl)}qjDpHOjI~~L2V$lDQj-J#o2?#kgGAAAiGNA`9j|zt0Kd%3+BzQoqJ2ED%43e;>1;r8BGy{7ma4mec|>nNwc7GP~HWC^4Av6X|pTxn)W zaPhOR`yO>SZAbe8JonRszDEB-8;HA94MI%hYqX)?A<99czZP zt}vm4f%3k2jkXXHXmyDqKohM2K1!$kyZb6S2*0CR!YZ^}^`3JE#{esfvFu>rWi*)P z86fuJ&n~jOoqFCjqquv2cLLqz-^Ud!%reO%Su$_@huBe@!L1x^p(0yt7k!y@gE%Tz+{}IiGrr z|7Y+UNLv8|^|qyV2UQu|yH)Z()qZ?E!=t~Fpz`@bR3<{7JUi8{oDXppkoC#$--)1u zy4w(w1(A_0&`V47mglS6Gf4`-$``t4KGQZp-KQ~kiNHTQD#OZhB8lY*AACa@pjfd* zfi9ho5cCFClu%4sYD=dCTJQ`Q>UwQSuirpTDYm49CV)35gf8Q-qaR^1T$levkqo zmb2}`KI%l{X&>xslTEGAuZ5;aK`}NXT9^xlBexmYy17A&KmESCO1pP92s>ZgV@I;d~=!BpQKws+`Ne^q8<^^nJLZ zGR->*IRT9qtSqyURSBT@$Et5Qjh~>fWxHcLyR)~{5?3Ue{lV2jd`<)Wj*giVh&Ye; z?We2WZ= z`wVx=rJuk*BH^kC(2BMItE!_++Oeu_7c_b}`fD<^USX|p{OGdS|Mz(d^1X`YF^J$6 z0#LdaDFL?6RzYN>gjnxmGkhtLJl3*t@GtX{!J_dZdJu6r8|K1S94din?QSEXywI7^ zK1pMHGQ#%Nz_{? zHkLJY=A$12F|=;TyQ7cWG+6WLeLb8K0-OFN3ad3@NQmhYC!0iv;(jO9<;yNv6=d(C zBjul{k&VG(Ex=eeTIPqX747@GC?v?A}M3-`M093qc*zSUrVdesXZxn6|k zSD8T;2@@bV5cT5OmeQTZkXJ|ZKK!ybR9d{d)(pfXCd(a!kt3kV-MC_i(8Er0?(NU| z6`f=j1Dmga3m@HtbN)Lj4&;erg4Tg9j1b}MMcF0%&WM*}FjxphI3*{QMYbFi;s|#G zqjqv^!O3ZiP^%LkKp9BT@XJ9(lx{5i{2b((9MwdrBRS_(G{@|1uQJkm={OrKIebqYqv3{BBn~A+@&9?7 zs{tkzxsR;TCf*Orvf5bim<`ci3{1yE=+OBkf5KV{P(2Gz)#EmIlflLlKZQT<2-%R{ zrOh6Ed!VSHz@hpYS2ePS;X%q~sRY$wpmSz|QQn95iX_Sj_YX)SvQ9AWd-lgPWXOIb z@gZ|UoY59hNdTRzLR#;yhB=(t;r@k@PNoiR;{5J_&Mt;=jmtRkUult^Zy#ASca>IM zLntEw4~^jl09{P3(ahD$@qJzY0-HyfTb*%DJ>c!RC$}sRl`xR@7&>SCqacoQ_yRkN zMGvW%C+z)JCZhcJk>jl7S-MYMZ!pW5 zJfm{CL6i2YEYuU^fnzkf6iDkgm!BoXmc_)TtFBe6k8q$H$@~?1Jr$W#(DgLk?&Qs+ z3t83p+mT>gmE_ew za{lC$QQ;^o+l4}K?w@ql5B{rO{=PNis{PMb!To>QGUCqM-@VRV(=2@So=9J487uM1 zY#ur?84Y99C~o8M;2Sf=B}E2_Jf~gtMVQmR3$UBEhD<|+uoA6f;P)~80nV|`Gj=Fy zC0Z@j`1e{rx`Ii5!@G-(roUiXViLU3GBIpxdrpqQx-!dFbgP?r9l}sPgRQ{p#O@9SE`V(^VA1@bN zN>SNCAq>4L#o^Xqi{gT3j+neQ>6RTdt170Diu1ZR_aWqlzZ?jpFPM zfwyiszWIb?WJHH0jZEe|jKjZY-HuaP)tGmA2-1@iZhve&!)jF<3#Lmdkj5B6_$fW9 z(`AAQvGGB}4{5}!8akEDGXsWDnTq%4sZZY2ONaQ)kgTtNM&vi984g zj#8`pPD|}6N?4CtdN>jC^|3c@a>2=a|D4Lq5mxgeJ3F9PwW#g*UaMEFE}&43^`kN0 z9(4jql;ZnJ)6er}$$P%iowWdG(wZ0QQ*4Z%W+92mioH0pJ^$ZD?qx@*4ykt<_3$4Z zwN;)VraAYHxTdDeEn0`mi7!|)={8(e(GJv((%ifdhUS%cK7kKRg#9!L73l+53tls(>!VzU}E$Gc?!y%mF+FOW4P zt_kSGcmLUX%|vM0rEQ%CwJoVJRGgSr`Z%#~y|t->?(6*n`^EFB`lZ03#~E#7V8r(< zE*95K*-N{5sV`fv1&=N9o;>isFXj+4Z1Y}(^5I1g{lnR+Fmt!`LT`n9!+D?P=Qk^L zbs3}%yvXJgw?!3`TEiUU>1Yw9;@T}*-F@M$MQy)B`N3+dRTJUOHmc1>ipU>Fy6BkS ze)W_6UvSq0>F;V`cNLnCb;zx<^(w~{$7i6i0*dm}X$s24jG=|3*b*`!c%~{OkMGHu zmoFdQguQcQT3o^pWqAFD`*8p^4>>vaZ2EV)Y8VF06%^^ix7|mN@Xcr^Bmz+FcfHdm zGEp%;U-HA2F+bSB_vy?im%1K*)l>Wih1qK!L?0D(l=cB#CcQ~2Cy=)dDk|vQ;4_94 z$h}ymTJr&+^AaR2yxQC*)B^2Lx%%DW8}x-ckLwzU@VCzj)q(~O%;-Bftcyht_3?Wc zL!_Jv*a*w$VG8Q`Msz%667`-2VVy-fzO&)`ws((JHLMG&lmoC;c&Vx2Bk26JRCr+M zZfHJ@Sjk(PpP7V6Wptc2`w#4~CtcI+k5+4@dH#ioS96@avVR(azdFnjqgQ0wI)!|_ z%I~CxCEHwiWO;7WyvJ+;ALUXvW# ziGxiMv~gS;LvD6;QDUc zzrKmTjWEq%Lv`RJ_>5{!pq0(5NAVU2>1FZ-F8ZiiP~&ux31r*1de!IteT(&TE5f?cZ(L&_DV4d0(J3xZ;Is@~!9ci>lj~57= zR_GQqIAQL5*C!A1 zb0EUn(O9GOh!?W#k!la$4JqVAnZ5-&6;$ z3SXC9dXA-#zQ+YC?_e%87H~ST#Cl`9N4-gNEAW{H!?y_sHQ~QWBhS8WySQ|ITl<@! zP!Cxpa=qp7&G&tq#G*~~rW{Lzt;Q?S745Yieov#Kq7G;0=a`2#9$DTfPH1w3Z?uJ5 zf7rQN-l3z&$R?jtbg^RM?-ml{*Id#dC-HspD3Qmwb$=P6)YQSNjY2sV1rXDk)&Q^B z)B13Uy50~ebV#J{?qSYo+u2**$?uBMlhe;zWpKvL`>axLd<||y|bIl4W*nCr) zd08a*QDdnIz40ZABIZaG=<0sfGlA-6C;!BN(fgf;o12Xrcv1t;BzitxrW{L8@3<;! zSSN4x;qE{?gaR>+yy`>yr9t{K0!sSP3Xy9?;7(g0aftM8!-YG*+Z_+g5o3>Z|Uzei|#VkdDd) zFQHX&ctt>z0c7?lF4pTbyd~WD$hX>Bjtf@3Vu~*Dd&lk!6)fP{Kr@pa&+^+gcG zF%-$raTC;kj6Sj&9NYW*=B(EA&p>Q?ViF?|8<|4&4%hi`qESLTPnv)*v4`d6qRy*a zrjr`f=LIuT0h6m^Ec8=2do<*C63Zse8r?MoH!jRw%FoC0q*20uZ=#SOB*0u8x{v&u zI9ikJe!=H?dqhdPE_6bqz={jgoPqH4gZ7$qR2<07B4PoFSvDbY18cOhA<4fNzKMIA z3vO?x$IQ{1xBU0#YYur{?=7d(nO8G0bm+NpwX`4)G_g^&k^}~h_oNG*aZG3ac~>oN z8GA7aRMySOkVW+J?4s|+eB@n0k!>AB7*8gKD6x>nW54Q``^5xrLpVR&k28|0?)VI{)v&xLKs*A#ERAC9R z^d)mgiPk)B?dLqqc0_jWAf3Li66pc&_v}zRnhA=qsCKYXl?1wswb|ALMF(M&}*Uuu;*U+V*}fwmxwu2*sP#Z9=)?k@>79doZb(w$-}#jigr4- z1r<^E@e3yfEdeqNx1UwOJp8$aXhQHmt_}`ShRI=I7egn>RM%2g1P?G>gy|~u=kvR}SgYZ|M5Rd=bi_B6( zH)QiYMCaqQT6im$k{eiHJt<>4pqKNO%JCd!Ii&X~eqbrsCE(O87Eu!LPONd}K=U^9 zK-2$V&8Z#zCK{jx2EV$yHK-o6-+y*NZQEk~jjk@}dpyB`UiDz22E7uWWJDLDQzm(M z1)SV^dLWK$$!?z@>TnglU5$lPm*ntP=iftT+uwYMJBwT7JPj7YL!J5I0s*ltxWE@L zzlfqsn&SFR?m`0R4=oDBKnYzX@navEe+TilnYi{7Zbu=ADuE0y*D;g}ucRF%2u-yC ziU6)DTkhQ*niIEBfvi63_KIkGe)Qi7nyPj0ug5}`H{J8`FTWypMC%}_EEoZVo|J7K zX#Sf`0Ii0hLTN1@dbKUT^LcTn;qyY$=d?w7WdcrxV3=JB+=;IwHpT4CO}+23NEH|i z|D%W6jT^RCWc}R2w*S6!{Rc1(u0c?b+7bKqTDdz9weFouU8`jqCwR!*4ZXyH$5tRl zd0^Z(xCe%HtAa$WIKZv0U#w@QV^av%Grp3u&3{rpr)@zGeP6=A(n)+EI&d3>;7rcn zx*3^&bpWrbIX#t;?cD+WKIoF5FH=U%JB-8Wj6v7K9EAd*$Pp={#`>?k*WtL}CVClP zbvCd!Tnw{d);#aYL0n;|i%>**W5p2jr}LiU*6zmWboGK2F?cNj`<^f}C*5!sRkq34 z#6=$`8Mkl%T!^Bs;-3#c*z)OKz`^@e{oqvYL*7@8POjF0o?ByoTpjhFIrBa@|3S%D zg{_z?+3zcR?veZB=FjMs|3e#)27I zI=_EdeX=V3!I%v^3a5gLwE|OddicO_S5j#Rh?LoQtWxl2zLHGtsFP$EQFvBm5l~>Vl1?)SK1&H z82&bVHF6*^ZFldT775#;Hlxu-?scGfait1ZvB&H)wXiU(h6TY&ZD^J0wSbVd(2xb8LZN*t+A|WqFesbSIF&@=&Hq#V6QZ`vRUgp^5kUqz+p$R{Mu-@bD_a` zit5*M(5#me2eyc1kFj83#+-==Twtc*>nBsaN@~)431O^yU6Muu+M5!_wn*+r(|I`7 zVJy1+)6>GcMcORxf`_3yn?;m}LNhJ`itoCkB2|86a=%j=uG8=V_=H=71@~+4PlQ&%=#@2E?(~2-htmjW2jpN^GYf zS#II5O7rlWy@WgUWEe&79L&qjMPz>FoUTm9etCT|u3B14)A1!95td6ch8iRs+)3(& zNHwl3ufAIm?PNMs^r6|Izq&vrmD~*LOx)cAL$NNPlC3_6I|< zR;C$ZLr{8((-v~*{8gmGfv*DbO@kY00FL_d*@i0%?)q(`=5+5vpRwYWa)kMbK%v&d z;g?&^jhD+C+PH{l)D0#<34APV=Wtk-{AIElmj}^lOJe_Rf~^ zaqKM~8dJi8$U2v8w!(uS36W+N1Y>&(Ti?bVcg(o(Me#Zf$Lz31v9kp*Z(pCkC!B_` zpD5NNQqMOR=UZcmmlb(s2gCh9FSGCXhr0>m@abfr^$d0a>Pt!aSmkM}?dP|tEi`|= zoo|IPxVl2R^JRU)<^uclsSo1lFFQW*W|z5e>gs}3wClgIcrmi%y{i9wRG=AL()}aP z)(2N#k_Jjys};t8A41G8Octl(L*|vJd0opdv%J$;8+WFA?Csr#%^a!t{EOcuYt+H~ z{Pae{yWKx07s)gm1fL+op?#bGgbvS#BLmMXD`~kW?)mXiANK4P3D=*)5`##^KwoJN zq$AcxV#hQGdzY#^*KYoV@e%)6Saa4-kD5* zh`j%ib+dWRCw+U~7H??lu5`h0c|H?6Uj36kWPwwXI&77q+>8yD%9Q|Fd6H-+!ypm* zZNEl^!~DC)Y^rGMXLAU1v&Pu;B)m;Bb6mLFP)aFAvvN8BG zAclyR`01qZz z`7nJsy^)mUMBkaRmt*ii$V82~RQM4vDP90oYc`~fshZA*wmZRI3}T%>{K*kdJo(33 z4*i5I@A}lOnr0~WxTD8CCDv-XLS8+K0`^e~|Jc%6{QYbw;F+n(WyFxef4mec zrzroLQBvC#+_}G%jykYZvIRW*9{tQG!jY=z`q(*O29e{G$xt z&MY9g5z`pSB8Ppn{zkJnUXNkr&qA5CLoMz@hvwa+x>?o3s)CizC{3M}x8dg?)%dAO z1{w;^dFY_yYfs$_wpiu58wh^)x7Ar=e6ydFffMx*pBP+cSy;@gQ$UjIhYLCU#iT$y zq%yF^q@??-LEZ@rRX2{t|Eo5sdBVvGC32Qj`3fDVfjD9vmgm0#<)G zSsa0vPU)HkeK--y?24LGPOGRDjxsuGGm>YmHM9Gt)@X`YWjynNMEFy78WGJml* z7oc0qcDC+!B1Fa#1$ekuHw*Xf1l+j-gZvE3hVW3sa?r3=mANR5Ztd0OFTg>!t2Ff*gZMEx{5C{X+)6|Z?$4G)lYa2=8%wUzu{h{k8aY~^excys;_>?RBlRnbfYbig?bH5U z&&>NvAnc&QX!H%fHRn}l|HodxAYKJ_dtY-(XRt&o3oao=6qoDKg(0XwEX7Lbuy~7W zgUYCS-KEv+&@vklqWY)NDB`VNQrDXtrQ7#A*eMH!ZWB;A0oDAj2*n$wuB(%{H0=ro zV(w5mFIiZ~o5>WQO6yI3TOk8CR3AQrIaJl%TN@j6zY9pNnYVr+UnS60xk-X7E^eO( zk6Sg=lfR{Sz`c-SY_^y;F)UoSsIY#nTXCF;PzJ2SMcv!p4)AJiVNt(t zgqM`XVmaQPkRHWx|@ zOvHz-UeAJjJ9=!?Q;2d&>k>~ym^VuoP&|ebt#k zFrh79{2=yYd(QIRRVEVXvaqw9eUk2y^R8qk@!?`hdRl=4T2Xk9$RaGk& z8Q0oQsLA+KgSxc!Q5^dpkG2VE*dWx#UX}FX5g3oHs)`^~^yR=!g@}O#OTWBeyiSYG z6yv7Y+9f~(DVjSiKK|WQ716Tf$gn^21XztdbYO1U|0uX6;hjs9bsY2y_aN4}2^>}V5{9Y&I$~*V)Akh{7_r=PO)tGd! z|20rxu!5X90YU5El!zZTmqq$GX!T*d3F+r0avjk!xkodt`3M|}p#!*=PLsHR4|-sF zW}N**`6b|uq3{mt-K>Lri}WAIk5*V*2AY#&bF|}&R6&-i?yLF{^WGzo#LPKj*hy@@ zBBO1Jd&Pq7pwolbI~3L5E|9U6kW0G}UM!|f~7gfA~^py=NZp~i%{l+BQfU>;Fy-?gI zc0gL458D;_ZjhV3cF}QjfV=zxpbTI}Z7FJfVCuCGKQM4G+_ zUix@bw#@c|3z8e)&Tv)OaMf^Rd|jhNL#V^n#{RigBVo!OPvbf##v2~-Dkf9~3D1p<9C~ntq@Zay8UIUUB+An1i z*|;do%>JARh@Q=Vw~e1%5|=;h1Z)CH#19zj+>HZL4l>jKGZIk1p(guUu6~Z-(twh# zQPU5^$j{~0_1v*h!R~I8`ixnmqg^qXwgD;gVd{b6xVuHMLVF#Mg9EzE9canw50*PH zH6g_%2G$Slk(E7r70EPrHg+XSzNqD_MTjhf-T>nGu(&^k7Qe7LL4jwT92bE7kI*h` zRWoAcgjE+SIa4vd_*{f|MqFU{m_1qpeFTUNPqLzuh?&pD+uNzWUx?eO(9V&GgetcvmaF~sb zapiN4%Y1#}GSkL0c-c6H_~lh8q`59RR9uXX@U}|ftI4V5Lylvur(0c{!hdwKb8^P< z?zv^-_N%l6Jk#PV{@!!DPDMhDkv)&I>Dj$dM3-%_ z=IN@5Nig8he}}2e^6{g7qXCX=Hc3GR6d^GNxQ|s^aAoUt|v}-USR&1bDm{d?~U#YAETosK@QqKXD5_&<~Z8H(_BSp zFd~dt6j*<+J|0i=qg~{P$yxL84uZLR3lSl$Ev*g9Cc38bsmlD zTb^%OHu4@%2~P>4QLl?1KzW9ee!$7kEe_;0Nn-x-f9+qrYx{#ZTp_F8XGr*Sn?Hpr zv}RJ4>T5N`aD^Gd^}5$=KHXM?*NkYYT#mCo{c-f3U!XB6IMe7NHiuHx%!)NwJzgfF zYstkQPD+n)!a5VssO(JiZ=%6$%cD{k79bOlD*j&DAgP?;(0KS0-mW9IsuA<5%y2h+6G3_fI=)y`67kq%>M-^VA7UbLqLX6eW79C_sKjIs!Hq8YrJdqbS+#NV|MB z+<)d?FW->55F8V0>dR?qeb7v)_8dlYfT&bZxT=xGRK6q7iCFkF$Yol%#dMS;kH{yZ5owR;V6r z*D15#3a7d8e?NEMtUuv*o~aXGNx^x`g=}#BEu$8_A(tnUC*(X5LT_%nl+&iugD*#Gg%-ajF3pY+RZx(02XDpq(`wQC|j~Lkq$rqn1oaPb9k2FO)RDGZl#w z*m~WesNku_ujhjcl#?4hUB{^3x;)zF`z$DZ|M8>47{1?>R8dGN5I&6gaD8{e$~U_+91CrG{_W$tQ7=0yP-r{PVXK1BNAiSu}&MCS-%Y z-ul%5{T-Sr!{csNet_lVX*pS-@ovhsHM##)k!2K^5usSApNX>pyXN zab4gOw`5DrY2Vhin6<3dxnUsGY32CZg8%QR@$00`nW>th{c!HSBPF{&j*ZEdy7|u$ zao>o<$;PvT_m{}?9Lg5VZNr9vZoEgO!6*81Ejyjd*}!^ubK`RON|eBl(64;;@a^9Q z$h9LybW1Mb%c&=W{{mB6>Jr=Qz*+M%spFC3PTnS8PY)`8OqiQAA%>C%0ayaauaXzM zF%~M=zNTDhOvBGjQ%mb$S3h)s%ezFjA7^>Lo38D-XY8Q`a?;NGFiD0avZvLzi7iH9!6;=G|!$u|D2Iw?AE!C$F z9_TCv_qd2i#P&5*J*Y>iAwHJqSU0-*E?;7Le6=_vTHG3rxrFj#JK*2F&p?A)xpzDg zFjTj{sB6705gCl)m8gi+D8HSY>@6Dnv6%j&#+?9`V(9yHzoCKqrd2#o9^P9I>@0`M zo)&P#tNHmvHj7{WEY1-kb#L?CXeL8Ud6F#=1V=QCH1(m+yhg09d3&ZSI?2Layb)Rp z=nroB#>w8>W@e3^^W5JP8g3dPlI^9kY7+xiiH#7_;#JaNAH#iLW##96iZqw_DdfpNIw&QQ~zW^2q$;* zg_qk=ro4A|PtS_zQ=k(elp;1r)bOSXa2-ykNdjz%l!RQwgT@Y^K2tT)baz<~Xp!bVwZ2Gz z+^i6jXt|uW@QlgRTW!+>g`{WGoCy`)w5n~W!=a>5(4pnZX6SJ+`@`Z^7s0K}+5)Tv z)o7F8=89wG#8(RJeVFjl-&Yu{X(Becp?X~ae*WskyRW$B!E)kkq8M!a2{A2*oIf3G z!SxiNuYi_FOIIV|K#99r(4YHPBz4=a;*|g6x|9t7AGR`Ku5j{AHre_kv$U0qmmjAI z^ebzxLtXQXwF%mh0g)2AtU>0WQk+1<4))T2BIV`fRNe(xX&6;@TUd%PYJ(@QvtK9! z*??1UT>o*2>4N{sMiK>z7?X=tQ{oV!ZTs_vB}I7mP|dt(ai4#RP`1%*e<7Nf&3h+g zJs}v4Mq|}MWyqUsM&No*Thz26BIC>Tdnn`xclSu&$=0vg^TpS?zpdsd*w`X2D*Tm@ zh_@2Yu7M6~sGt8WnYp%U@F)Bc0d zD0KnxVT{mveAd^mkJc$i#-)jMo+jl6C5w7$i9(`PLh1!CL1AAi{0p=06S4S1E9z+hq$pX){7^&f47Ad zZ6_dqzQ#cSz#OO-{*YzA_wubr0sAGpsfM{yqvYYV^G zqe4j-)$_D?Y$y&|hFv*4*dNGpN|(vpNNNQleMp~Q!|@tLL0%K`V(d8UR(w??=6P)$1wddM$kq3=OFV!sz;__mt&3|AP-hyIGLo(Dz1&(!<41 zvVOmazl>7fV{xd>Wlf(R)*?RI24>m3$wvy`J3dkSBw{tiI{VXp&!7M4Y`cn8hHGKl zN);dY?2l}%VQJiN8y9uo#Lo<~&t1^@#}dd-2x%x;yM-ZOm&^UC*b z7h#JNoR6);X#wJP%@?e%hIx9@jr5g4GuDd-zjp}h$l|bt-ZP1MNlI!1&W7TzTb%<4g0I)BoB!Is7=zoX6@X-k&Tonedebzx-TBJ2R|g% zeGAw>Vzvn)EeX2M3bN8YM__b-dVOJ?q!7MEwS6HJvOn8CK{?|XCxo3@Ba1z6pr{i!j0i#a>NpA`~EAl zd0&lV^4!MDf38099PrV$PW|-c_CrMK^&f-54HF(LRK?P}`aV?`+x!dC`DpVN64I}9 zQ0e}Cj_{cBnuuKILCaGy3=o>Lb_8Ye6yTqXz$A87-3Qs$`(h=E9NYZT{VOgJ4J_-XX~!*Ceopix48%aWeA?=x1- zyL0mGgeyyny~A$^#FYxv{ek{^$oY)XQ{ z%lne#CbqcOh&f<`5711eLN(n8OXr7%)=bNXgu3sum#FX1XKqM*6rJDa*$`kl7<$Wx zvgj43Z3_e3B|^7<8zZWwbhSbOVdOqIjWf5>0?GMIC+TTMe@;FcInGbT0)k-9E5lXm zGiAtT;9YBvs-P^df;5UFOSiX$tEdQGZ^p}P(s-A+_k+Tqmc?SjwyQo)>x~%-8DpoMkPLY z$x)hikpq!d2gp{OFK3YP;r&WrOqNCgoS}?|x_KPM_`XPv1wrD3|J6C;Ji( zkEYiYS4iXw-*eu6)wANfA%NM|DApJMY(jJ^CjRir)df7BzCDI_^Ehvg!L{aRzDwb# zG6^OQGH6pWl!oZN&>e$P?4?wzgHGP~2r@0QN8ba>98$T4Gi4G2D0%7)9g8o5pA^|} zSfzdK$+m__`58@&In;OJxPsszRFT%A3(*8(% z-Z>f@e~)c{GR|*}39d$2(6epm>RVhFaIjno7r}idfOZh*=~yBMbkW&f`dPlkH36rC zSNwt)t28D4C1F9#>$DRaOfwXg%-i`lkLw?gS^ZC%jVKu6@}C#13p?y{^KeieT=^@R zmAvUdv-)z)H-QeT&UWM6Q4z#LKuUf|WHzc=P2Me@GL@;)#Or+AZm+7L{^Dzu6idb= zl;UCAi=szu8*C2~*(7yeMS3KO1yoyPxWvtBKV4$>4CwlX|&(Ouwp^v zH6lT$67E*V_iyI!XMsM*#gz6W4%S&A&6u0l_%ZAP3aO$3*di${lukD=@klK}v1qe@ ze&TJeFctzsB_)GZA;kPrFGoibdDkc`OW*Thw#BX% zg9iu1tq|c!Lr=7bK8-=^N8H+mH;XCx!ycWIOrY;7`*mH-muH0(6PEV}`i`|>$h_(C zAo>JF>$Iub|;FTf#h|Xik ziX%*=ro~V{Gi@l1Q7_0eZArAj!w3RKR={n{H$b2h2Xae^e}Nc$Zk4IVB7a&0+f`#9^LVBnSaej#Gl*Z^JbFcRK;?LM{x zM-&k*dd!BrE}-mflcrQ`gDR?o^QLWsK#q3)nnT@?3e@xy63vFeiGUJBRG@LFLW#R$ zvLavcR99a@1@cgGpo(3i_zT?Q4G4sm4ws8d#C-;a;HLD)22GHBoUXR}vsW-3ubLBU z?zbNTw~Xy8{K&6pKzy7o_&w`<3oNmjN7w`Ag+zpl7QRj8$1Y%+zx^By{)Gz9Xc`M} z4W$Cbf1WHnf|RVcb^KHG$wM)onbWk>7_a(Bq7=?)bIcDAOZ5Y)O2ZTC#!fvO{t(xsk0bm`YH?7%_PaI^lHRMLRP&9Qb&8x$=eLH+9(x(o z(I@`8ykX$bH&9UwB~PKq?KIW3O;7ZgT8 z=iMeExG?EKgB}cg%qpKS+=O@Ow&ce9>Weo;jbTZ)NKO!1F0xjXxP=OSH?Cas5N`Uk zJhogDL%|}nQ5-Fx5d;sbA&&V4Z?u1WNU&&zbW^$XO6Zy?*YE%7nB1S;#4>xd`aJ-}R~Q%S&CjMp^aKx9RBb21Bh#_z zj1=w6{IM0l32Hk~N~LRFt`bp9ZE;-pMR^U{my6FJ}-*noxi~Za@PJWvNwC<=(hLH(DkP-Cwfx%)Uyt%zy{PBvVjVZA z!;c1w-%M;^0zFzjh~OcAO1&C%)ib$9lGu}bi&s#S^sy!J)l7Bph^?rQ0-?wm7ck5(B|#6;-L7obE2t( z@-PXLvo~&&3(tBp1kl7H6xWn3jWm6Z0y>z`=gI*CF3M3Xc8%xU@4E9!Qj7CzLq%jcUS z>moi3RQa!+ZZYoDw~yE-j){28GZeBCIT`QTI!IrtyTNS_;}8(Cr@e1SAB}3n_v?De z;0bqU`kwp^OrE>_a`%mr{0d>Z3GP)DMSOq@TDdE!&4s!Txb!Q@rx8Ivpn2Nxl2? z+w9Gr8VD~1xPoUVxpZmu2E(QIO;YO^otbFUdB2TCeT3J{aGR1A@zNSxaL5{w|L5fS zPc(Umc@MGp_Yob4Y`1s3mGI&%W_&tB>L}SQmDYkvVDaoZejy3)bGx-MoND}TpVG?) z^i@)j!oq!rpyr>G0Si9P9gBa(T~qxZ3Uw3VUOy+B$g)lteH!N@25*JB8=&tqW;dlP z2PAyE?FW@m*x~IYn3QL>7V(cQ05FlhbMk$ zK$A-?oWLQRAcZ_h_f$q$jAxezbxFB3X^nGABGRdxNORHmRj?dxjUpByjH6ZARxdpT z4+4$c=$YnMiy6=ph~J4VAg8edHj*~6iO3`X&5~$LNft4+k@W2;ZgrmwsH7vbKBWhh z=8i*Cbzg);kal-7zv)QuCTSq1q>gfUN|Y>OGpI2IMfH7@?eMd>iq%w==Uor>%s{@a zgr1F6N+$thI7bC!h$T@1klMXT1D2K3{`veCsFd)-*ZP)kHrjr{ALj^2;kj~eOJ){b zNhGQyF3?aJufQ(HF3f;(iSAqhd^yL<&f!&A9v;s5xWCqzujO__sIuueGw*=L2x?GN z`koJd_*I^4@fPd+dlTS~mEA3{tx>JMZxfX<=`-$GHA?%6dp?L9u&P8!GUWqGmoj|6Dvp0{2AJ^Olbw#qYIyGq9XuVc0VLSdY{Kve#66LHU( zR1}5XbKlFv@7}%%64F54O8FvIqN298_~H8e%3U1u@Mh)yT_p;9u+2SEM@*9SaM6Q9 zZ_uOG`?2C=x?|a-tn)n6R;4T{tpU2kOIxW=ZwjPNEzwj>v@E>+cmwo&qbC+7+w`05 z)4NvQyV~2jJ~lms91%iT$(6*@nVgJzhNTsX*)oE1gRB3XZ)>bwRJtc|mS?ylI=(4j zjNl?n4hLWKo!7mJ2hJE=0;TLVGKtQA2#qLXPN?=CMdBL|+XySW)-I5c$SA=909Ake)l^{@5&a$}%tx%8>`JPLNE zLunk5MiYOqIy5*;KKZ=M-E}me4Fq~6XYdf#|>9o?p#USqhnLYpLQ`9jDHaqG#BotFfQG& zxvb*h&TjwJ44XsGTf#o_Fma)w=jHb)N3UM$i|<7uUN8T8d89v7E_C$(aUVAtSe*G+ zC3N+g+bnwpMK{(Au}ctl1HG}77qzg{2hD4im@Y~yQDQ;;NMP&XkAbK)ie+3^JCr%H zjf=h$s?Hu(xm|(A?XG>7oxKwJvYPavgOMEo<)T-K7HGF3LiI%Rr~W&Zj&HM80~e20 zJ}cW>*|}Y|rfAOm6TRrIls9{X)u&DmG9uZTQ}Q;j&2zppla5|6x%A9Po8yqbF`oZ@ zY|MrWew7uo>e*N@1B2vzxqh~qz42p={TDLGEgoNO1f*n{|2t|xe50cKy`^m3|ITTt L>p!VfwGH_nFPvF> literal 0 HcmV?d00001 diff --git a/index.js b/index.js new file mode 100644 index 0000000..6e8db80 --- /dev/null +++ b/index.js @@ -0,0 +1,18 @@ +var glob = require( 'glob' ) + , path = require( 'path' ); +const bot = require('bbot') + +/** This is a workaround for Heroku to confirm web binding. */ +// @todo Remove this when bBot includes Express (next release) +const http = require('http') +const handle = (req, res) => res.end('hit') +const server = http.createServer(handle) +server.listen(process.env.PORT || 5000) + +/** Add your bot logic here. Removing the imported examples. */ +// require('./src/examples') +glob.sync( './src/*.js' ).forEach( function( file ) { + require( path.resolve( file ) ); +}); + +bot.start() // 🚀 diff --git a/init.js b/init.js new file mode 100644 index 0000000..bcbed23 --- /dev/null +++ b/init.js @@ -0,0 +1,76 @@ +const fs = require('fs') +const cpm = require('child_process') +const { promisify } = require('util') +const inquirer = require('./node_modules/inquirer') +const readFile = promisify(fs.readFile) +const writeFile = promisify(fs.writeFile) +const copyFile = promisify(fs.copyFile) +const exec = promisify(cpm.exec) + +async function replaceInFile (file, regex, value) { + const content = await readFile(file, 'utf8') + const update = content.replace(regex, value) + await writeFile(file, update, 'utf8') +} + +inquirer.prompt([ + { + type: 'input', + name: 'package', + message: 'Name your node package', + default: 'bbot-bot', + validate: (name) => (new RegExp('^[a-z@/-]*$').test(name)) + ? true + : 'Invalid name for npm package.' + }, + { + type: 'input', + name: 'bot', + message: 'Name your new bot', + default: 'bot' + }, + { + type: 'input', + name: 'author', + message: 'What is your name?' + }, + { + type: 'input', + name: 'email', + message: 'Email (for package author field)' + }, + { + type: 'confirm', + name: 'env', + message: 'Create .env with defaults?' + } +]).then(async (answers) => { + if (answers.package) { + await replaceInFile( + './package.json', + /^(\s\s"name":\s")(.*?)(")/gm, + `$1${answers.package}$3` + ) + } + if (answers.bot) { + await replaceInFile( + './package.json', + /^(\s{2}"bot": {\n\s{4}"name": ")(.*?)(")/gm, + `$1${answers.bot}$3` + ) + } + if (answers.author || answers.email) { + let author = answers.author ? answers.author : '' + if (answers.email) author += `<${answers.email}>` + await replaceInFile( + './package.json', + /^(\s\s"author":\s")(.*?)(")/gm, + `$1${author}$3` + ) + } + if (answers.env) { + await copyFile('.env.example', '.env') + await replaceInFile('.env', /brocket/g, answers.bot) + await exec('open .env') + } +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000..b7f3e98 --- /dev/null +++ b/package.json @@ -0,0 +1,53 @@ +{ + "name": "bbot-bot", + "version": "1.0.0", + "description": "bRocket is a bBot boilerplate for building Rocket.Chat bots", + "main": "index.js", + "files": [ + "index.js", + "src" + ], + "repository": "git@github.com:Amazebot/bbot-rocketchat-boilerplate.git", + "author": "mose", + "contributors": [], + "license": "MIT", + "private": false, + "engines": { + "node": "> 8.0.0", + "npm": "> 5.0.0" + }, + "keywords": [ + "bBot", + "Rocket.Chat", + "rocketchat", + "chatbot", + "chat", + "messaging", + "conversation", + "CUI" + ], + "bot": { + "name": "bot", + "message-adapter": "rocketchat", + "avatar": "https://cloud.p2p.legal/apps/files_sharing/publicpreview/PGw3GwgWZbDMYSt" + }, + "dependencies": { + "bbot": "^1.4.0", + "decode-entities": "^1.0.7", + "exec": "^0.2.1", + "glob": "^7.1.6", + "html-entities": "^1.2.1", + "path": "^0.12.7", + "unescape": "^1.0.1", + "util": "^0.12.1" + }, + "devDependencies": { + "nodemon": "^1.18.3" + }, + "scripts": { + "setup": "node init.js", + "start": "node index.js", + "watch": "nodemon index.js", + "debug": "nodemon --inspect index.js" + } +} diff --git a/src/aide.js b/src/aide.js new file mode 100644 index 0000000..7955247 --- /dev/null +++ b/src/aide.js @@ -0,0 +1,19 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); +const util = require('util') + +bot.global.text({ + contains: ['biz aide','biz help'] +}, (b) => { + membres = exec("src/shell/aide.sh text", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'biz-aide' +}); + diff --git a/src/axiom.js b/src/axiom.js new file mode 100644 index 0000000..8449ba9 --- /dev/null +++ b/src/axiom.js @@ -0,0 +1,51 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; + +//ADMINS +var adminRooms = ["pokabizbot", "_recrutement", "compta-axiom", "_admin-at", "test-bot-chat", "poka", "equipe"]; +//var adminRooms = exec("cat admins-chan.txt"); + +bot.global.text({ + contains: ['axiom adhérent','axiom adhérents','axiom adherent','axiom adherents'] +}, (b) => { +// cmd = b.message.text +// roomName = b.message.user.room.name + + if (b.message.user.room.type == "p") { + roomName = b.message.user.room.name + } else { + roomName = b.message.user.name + } + + if (adminRooms.indexOf(roomName) == -1) { + cmd = "adherentsSoft" + } else { + cmd = "adherents" + } + process.env.hb_cmd = cmd + + pubkey = exec("src/shell/helloasso.sh $hb_cmd", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'axiom-adherents' +}); + +bot.global.text({ + contains: ['axiom cagnotte'] +}, (b) => { + membres = exec("src/shell/helloasso.sh cagnotte", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'axiom-cagnotte' +}); + diff --git a/src/debug.js b/src/debug.js new file mode 100644 index 0000000..3fba54d --- /dev/null +++ b/src/debug.js @@ -0,0 +1,17 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const util = require('util'); + +bot.global.text({ + contains: ['debug user'] +}, (b) => { + username = b.message +// const userId = res.message.user.id +// username = robot.adapter.api.get('users.info', { userId }) +// process.env.hb_username = username + b.reply("```" + util.inspect(username, {showHidden: false, depth: null}) + "```") + + +}, { + id: 'debug' +}); diff --git a/src/disabled/examples.js b/src/disabled/examples.js new file mode 100644 index 0000000..7866938 --- /dev/null +++ b/src/disabled/examples.js @@ -0,0 +1,201 @@ +const bot = require('bbot') + +/** + * All branch examples start from the "global" conversation scope. + * We are working on features to provide branching within a conversational + * context, but as those methods are changing in the beta, they aren't included + * as examples to follow just yet. + */ + +/** + * Branch types are declared from their scope, see all available types here: + * http://bbot.chat/docs/path#builtforbranching + * + * `text` branches take the following arguments: + * - matcher: expression, semantic conditions object, or array of conditions + * - callback: to fire on successful match, given the state object (b) + * - [options]: object with `id` (string) and/or `force` (boolean) attributes + * + * Test with "Hello bots!" +*/ +bot.global.text(/(hi|hello).*bots?/, (b) => b.respond('Hello :wave:'), { + id: 'hello-bots' +}) + +/** + * `direct` branch type requires the bot to be explicitly addressed. + * + * `reply` instead of `respond` prepends messages with user's name. + * + * In Rocket.Chat all messages to a bot in a direct room have the name prepended + * by the Rocket.Chat SDK before it's processed by the bot framework. + * + * Test with "@brocket Hello" or just "Hello" in a DM. +*/ +bot.global.direct(/hi|hello/i, (b) => b.reply('Hey there.'), { + id: 'hello-direct' +}) + +/** + * `respondVia` allows using custom platform methods to dispatch response. + * + * Matcher conditions allow semantic attributes with a string or array of + * optional values to match against, possibly capturing content. + * Accepted atts: is, starts, ends, contains, excludes, after, before, range + * + * Test with "Hello anyone?" +*/ +bot.global.text({ + contains: ['hi', 'hello'] +}, (b) => b.respondVia('react', ':wave:'), { + id: 'hello-react' +}) + +/** + * Branch callbacks allow asynchronous responding, if they return a promise. + * State (b) includes branch matching attributes, see bbot.chat/docs/thought. + * + * Test with "@brocket ping back in 5 seconds" +*/ +bot.global.direct(/ping back in (\d*)/i, async (b) => { + const ms = parseInt(b.match[1]) * 1000 + await new Promise((resolve) => setTimeout(resolve, ms)) + return b.respond('Ping :ping_pong:') +}, { + id: 'ping-delay' +}) + +/** + * The `respond` method can accept attachment objects as well as strings. + * Rendering support depends on the message platform and adapter. In shell, + * it will display the fallback text. + * + * Test with "bot attach image" + */ +bot.global.text(/attach image/i, (b) => { + return b.respond({ + fallback: `See: https://www.wikiwand.com/en/Three_Laws_of_Robotics`, + image: `https://upload.wikimedia.org/wikipedia/en/8/8e/I_Robot_-_Runaround.jpg`, + title: { + text: `Asimov's Three Laws of Robotics`, + link: `https://www.wikiwand.com/en/Three_Laws_of_Robotics` + } + }) +}, { id: 'attach-image' }) + +/** + * The `envelope` provides helpers for adding rich-message payloads before + * responding. Preparing envelopes before dispatch also allows changing the + * user/room the envelope is addressed to or dispatching multiple envelopes. + * + * Test with "I want a prize" + */ +bot.global.text({ + contains: 'prize' +}, (b) => { + b.envelope.write('Choose your fate! 🚪... 🎁 ') + b.envelope.attach({ color: '#f4426e' }) + b.envelope.payload + .quickReply({ text: 'Door number 1' }) + .quickReply({ text: 'Door number 2' }) + .quickReply({ text: 'Door number 3' }) + return b.respond().catch((err) => console.error(err)) +}, { id: 'door-prize-intro' }) + +/** + * The `conditions` attribute contains results of semantic condition matching + * and capture groups. Each condition can be given a key for easy reference. + * + * Test with "what's behind door number 2" + */ +bot.global.text({ + door: { after: 'door', range: '1-3' } +}, (b) => { + switch (b.conditions.captured.door) { + case '1': return b.respond(`You win nothing 💔`) + case '2': return b.respond(`You win a monkey 🐒`) + case '3': return b.respond(`It's a new car!! 🚗`) + } +}, { id: 'door-prize-award' }) + +/** + * Branch callbacks can be async functions, to awaiting one or more processes + * before responding. This example uses API requests to fill a dynamic array + * of actions, using the url property to provide link action buttons. + * + * Test with "@brocket plan meeting" in a public or private room. + */ +bot.global.direct({ + is: 'plan meeting' +}, async (b) => { + if (bot.adapters.message.name !== 'rocketchat-message-adapter') return + b.envelope.write('Please review time zones in the room...') + const { id, type } = b.message.user.room + let room + const q = { roomId: id } + if (type === 'c') { + room = await bot.adapters.message.api.get('channels.members', q, true) + } else if (type === 'p') { + room = await bot.adapters.message.api.get('groups.members', q, true) + } else { + return b.respond('Sorry, that only works in channels and private groups.') + } + const offsets = room.members + .map((member) => member.utcOffset || undefined) + .filter((offset) => !!offset) + for (let utc of offsets) { + b.envelope.payload.quickReply({ + text: `🌐 UTC ${utc}`, + url: `https://www.timeanddate.com/worldclock/timezone/utc${utc}` + }) + } + b.respond() +}) + +/** + * @todo This example requires PR #11811 to be merged. Room names are undefined. +*/ +bot.global.text(/where am i/i, (b) => { + const { name, type } = b.message.user.room + switch (type) { + case 'c': return b.respond(`You're in the #${name} public channel.`) + case 'p': return b.respond(`You're in a private group called **${name}**.`) + case 'l': return b.respond(`You're in a livechat channel.`) + case 'd': return b.respond(`You're in a DM with me :hugging:`) + } +}, { + id: 'location-check' +}) + +/** + * Custom options can be added to the bot, with the full config utility of bBot, + * allowing them to be defined as environment variables, command line args or + * package.json attributes. Extend settings with a yargs option format. + * + * Try any of the following: + * - `node index.js --avatar ` + * - BOT_AVATAR= in .env + * - `{ "bot": { "avatar": "" } }` in package.json + */ +bot.settings.extend({ + avatar: { + 'type': 'string', + 'description': 'Set a custom avatar for your bot account profile' + } +}) + +/** + * The bot can access lower level methods of the Rocket.Chat SDK through the + * message adapter, once it's connected. This example sets an avatar on login. + * + * Try replacing the avatar configured in package.json with your own. + */ +bot.events.on('started', () => { + if (bot.adapters.message.name !== 'rocketchat-message-adapter') return + if (bot.settings.get('avatar')) { + bot.logger.info('Setting bot avatar') + bot.adapters.message.api.post('users.setAvatar', { + avatarUrl: bot.settings.get('avatar') + }) + } +}) diff --git a/src/disabled/tpl.js b/src/disabled/tpl.js new file mode 100644 index 0000000..5253e78 --- /dev/null +++ b/src/disabled/tpl.js @@ -0,0 +1,33 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); +const util = require('util') + +bot.global.text({ contains: [''] }, (b) => b.respond(""), { + id: 'id-tpl' +}) + +// -------- + +bot.global.text({ contains: [''] }, (b) => { + b.respond("") +}, { + id: 'id-tpl-2' +}); + +// -------- + +bot.global.text({ + contains: [''] +}, (b) => { + membres = exec("src/shell/.sh", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'id-tpl-3' +}); + diff --git a/src/disabled/url_metadata.js b/src/disabled/url_metadata.js new file mode 100644 index 0000000..c74391b --- /dev/null +++ b/src/disabled/url_metadata.js @@ -0,0 +1,57 @@ + +const bot = require('bbot'); +const request = require('request'); +const decodeEntities = require('decode-entities'); +//var decode = require('unescape'); + +var request_options = { + headers: { + 'User-Agent': 'crabot retrieving url metadata (https://wiki.crapaud-fou.org/crabot)' + } +}; + + + +bot.global.text(/(https?:\/\/[^ ,\)"\n]*)/ig, async (b) => { + // console.log(JSON.stringify(b.match, null, 2)); + for (url of b.match) { + // console.log(JSON.stringify(url, null, 2)); + if (!/(coa|pad)\.crapaud-fou\.org/.test(url)) { + request_options.url = url; + request(request_options, (err, res, body) => { + // console.log(JSON.stringify(res, null, 2)); + if (!err && res.statusCode === 200) { + var re = /]*>([^<]*)<\/title>/gi; + var match = re.exec(body); + if (match && match[1]) { + var extra = ""; + var link = res.request.uri.href; + link = link.replace(/[\?&]fbclid=.+/gi, ""); + link = link.replace(/[\?&]ncid=.+/gi, ""); +//kopa match[1] = match[1].replace("'", "'"); + if (/youtube.com/.test(link)) { + if (t = /[?&]v=([^&]+)/.exec(link)) { + link = "https://www.youtube.com/watch?v=" + t[1]; + extra += " - [no-cookie](https://www.youtube-nocookie.com/embed/" + t[1] + ")"; + extra += " - [invidious](https://invidio.us/watch?v=" + t[1] + ")"; + } + } + b.respond(decodeEntities("[>>>](" + link + ") _" + match[1].replace(/\n/g, " ").trim() + "_" + extra)); +// b.respond("\>\>\>\> _" + match[1].replace(/\n/g, " ").trim() + "_" + extra); + } + } else { + console.log('-----------------------------------'); + console.log('URL: ' + url); + console.log('ERR - - - - - - - - - - - - - - - -'); + console.log(JSON.stringify(err, null, 2)); + console.log('RES - - - - - - - - - - - - - - - -'); + console.log(JSON.stringify(res, null, 2)); + console.log('-----------------------------------'); + } + }); + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + } +}, { + id: 'get-url-metadata' +}); diff --git a/src/g1-info.js b/src/g1-info.js new file mode 100644 index 0000000..e324fa9 --- /dev/null +++ b/src/g1-info.js @@ -0,0 +1,34 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; + +bot.global.text({ + starts: ['pubkey','rib','biz rib', 'biz pubkey'] +}, (b) => { + username = b.message.user.name + cmd = b.message.text + process.env.hb_cmd = cmd + process.env.hb_username = username + pubkey = exec("src/shell/g1-infos.sh pubkey $hb_username $hb_cmd", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'g1-pubkey' +}); + +bot.global.text({ + contains: ['membre','membres'] +}, (b) => { + membres = exec("src/shell/g1-infos.sh membres", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'g1-membres' +}); diff --git a/src/g1sms.js b/src/g1sms.js new file mode 100644 index 0000000..f789481 --- /dev/null +++ b/src/g1sms.js @@ -0,0 +1,20 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); +const util = require('util') + +bot.global.text({ + contains: ['TEST BSMS'] +}, (b) => { + b.respond("Test de G1SMS ...") + membres = exec("g1sms/test.sh chat", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'sms-test' +}); + diff --git a/src/hubot_scripts/aide.js b/src/hubot_scripts/aide.js new file mode 100644 index 0000000..98e25df --- /dev/null +++ b/src/hubot_scripts/aide.js @@ -0,0 +1,16 @@ +module.exports = (robot) => +{ + robot.respond( /aide/i, (res) => + res.reply( `QWant est ton ami... +... Nan j'déconne, voici ce que je connais: +- *biz aide*: Affiche cette aide +- *biz liens*: Donne des liens utiles +- *index pads*: Donne le lien vers l'index de nos pads +- *membres*: Affiche le nombre de membres actuelles de la Ğ1 +- *pubkey*: Affiche sa propre clé publique Ğ1 +- *axiom adhérents*: Affiche les adhérents de l'association +- *axiom cagnotte*: Affiche le status de la cagnotte de l'association +- Massages Viet pour 150Ğ1 +- Et bien d'autres choses, je vais pas tout te dire non plus !! :rofl:` ) + ) +} diff --git a/src/hubot_scripts/liens.js b/src/hubot_scripts/liens.js new file mode 100644 index 0000000..fd367db --- /dev/null +++ b/src/hubot_scripts/liens.js @@ -0,0 +1,12 @@ +module.exports = (robot) => +{ + robot.hear( /index pad/i, res=> res.send(":arrow_right: https://pad.p2p.legal/axiom_index-pads") ) + robot.hear( /index des pad/i, res=> res.send(":arrow_right: https://pad.p2p.legal/axiom_index-pads") ) + robot.respond( /lien/i, res=> res.send(`*Index de tous nos documents* :arrow_right: https://pad.p2p.legal/axiom_index-pads +*Site officiel de l'association Axiom-Team* :arrow_right: https://axiom-team.fr/ +*Forum de l'asso axiom-team* :arrow_right: https://forum.axiom-team.fr/ +*Cloud publique axiom - Ressources Agora* :arrow_right: https://cloud.p2p.legal/s/DDbKi2pqdEmixS9 +*Cloud interne axiom - Nécessite un accès* :arrow_right: https://cloud.p2p.legal/f/204193` +) ) + +} diff --git a/src/inc/aide.txt b/src/inc/aide.txt new file mode 100644 index 0000000..c2f6770 --- /dev/null +++ b/src/inc/aide.txt @@ -0,0 +1,11 @@ +*Voici ce que je sais faire ...* + +``` +- biz aide: Affiche cette aide +- biz liens: Donne des liens utiles +- index pads: Donne le lien vers l'index de nos pads +- membres: Affiche le nombre de membres actuelles de la Ğ1 +- pubkey [pseudo]: Affiche sa propre clé publique Ğ1 si [pseudo] n'est pas renseigné, ou bien celle du pseudo indiqué +- axiom adhérents: Affiche les adhérents de l'association +- axiom cagnotte: Affiche le status de la cagnotte de l'association +``` diff --git a/src/inc/liens.txt b/src/inc/liens.txt new file mode 100644 index 0000000..82ada1b --- /dev/null +++ b/src/inc/liens.txt @@ -0,0 +1,6 @@ +index pad !! https://pad.p2p.legal/axiom_index-pads +Site officiel de l'association Axiom-Team !! https://axiom-team.fr/ +Forum de l'asso axiom-team !! https://forum.axiom-team.fr/ +Cloud publique axiom - Ressources Agora !! https://cloud.p2p.legal/s/DDbKi2pqdEmixS9 +Cloud interne axiom _(Nécessite un accès)_ !! https://cloud.p2p.legal/f/204193` + diff --git a/src/inc/need-certif.txt b/src/inc/need-certif.txt new file mode 100644 index 0000000..0dfbf1b --- /dev/null +++ b/src/inc/need-certif.txt @@ -0,0 +1,9 @@ + +5 personnes membres vous connaissent-elles bien ? Peuvent-elles vous contacter ? Contacter votre entourage ? Avez-vous sauvegardé votre document de révocation ? Avez-vous installé un client local sur votre ordinateur/smartphone comme Cesium ? + +Si oui -> vous connaissez certainement ces personnes vous aussi, et pouvez leur demander. +Si non -> il va vous falloir créer des liens avec des membres, conformément à la **[licence](https://duniter.org/fr/wiki/licence-g1/)** que vous devez lire, comprendre et accepter. + +Je vous invite également à lire le **[guide du débutant](https://forum.monnaie-libre.fr/t/00-intro-guide-du-debutant-en-monnaie-libre-g1-june/2777)**, et surtout à vous renseigner sur les rencontres de présentation de la monnaie libre autour de chez vous, pour créer des relations humaines réelles. + +Bienvenue, et bonnes découvertes ! diff --git a/src/inc/repliques-mlc.txt b/src/inc/repliques-mlc.txt new file mode 100644 index 0000000..925b7a6 --- /dev/null +++ b/src/inc/repliques-mlc.txt @@ -0,0 +1,6 @@ +OBSCURANTISTE! +MENTEUR! +Toute mlc ne sert qu'à nuire à l’eveil de conscience sur la création monétaire. +Avez vous déjà vérifié les arguments (fallacieux) servis par les rabatteurs de mlc? +Les mlc coutent un bras au profit des banques et de quelques « chiens de garde» de leur salaire en unl qui en découle (rabatteurs). +La plus grosse mlc de l’histoire j’ai analysé: La mlc argentine en 2001. Elle a permis l’emergence de Monsanto compagny en 2002. N’hésitez pas à vérifier. diff --git a/src/jokes.js b/src/jokes.js new file mode 100644 index 0000000..8e16f10 --- /dev/null +++ b/src/jokes.js @@ -0,0 +1,23 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); + +bot.global.text({ contains: ['vtfn','si tes pas content','si t\'es pas content'] }, (b) => b.respond(":arrow_right: https://vatefairecuireunnem.com/"), { + id: 'joke-vtfn' +}) + +bot.global.text({ contains: ['biz présente toi'] }, (b) => b.respond(":arrow_right: https://matiou.biz"), { + id: 'joke-presente' +}) + +// L'infernal matiou sur les MLC ... +let bizbi = fs.readFileSync('./src/inc/repliques-mlc.txt', 'utf8'); +bizbi = bizbi.split('\n') +function randomize(toRand) { + resultRand = toRand[Math.floor(Math.random()*toRand.length)] + return resultRand; +} +bot.global.text({ contains: ['mlc'] }, (b) => b.respond(randomize(bizbi)), { + id: 'joke-presente' +}) + diff --git a/src/liens.js b/src/liens.js new file mode 100644 index 0000000..2f5e0f9 --- /dev/null +++ b/src/liens.js @@ -0,0 +1,21 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); +const util = require('util') + +bot.global.text({ + contains: ['biz lien','biz liens'] +}, (b) => { + cmd = b.message.text + process.env.hb_cmd = cmd + membres = exec("src/shell/liens.sh $hb_cmd", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu ...") + } else { + b.respond(stdout) + } + }); +}, { + id: 'biz-liens' +}); + diff --git a/src/reactions.js b/src/reactions.js new file mode 100644 index 0000000..43fe740 --- /dev/null +++ b/src/reactions.js @@ -0,0 +1,23 @@ + +const bot = require('bbot'); +const globe_delay = 60000; // 1 minute +var globe_said = {}; + +bot.global.text({ + contains: ['facebook', 'google', 'amazon', 'apple', 'microsoft'] +}, (b) => { + b.respondVia('react', ':hear_no_evil:'); +}, { + id: 'gafam-react' +}); + +bot.global.text( + /pe?tit? globe/i +, (b) => { + if (!globe_said[b.message.user.room] || new Date().getTime() > globe_said[b.message.user.room] + globe_delay) { + b.respond('![pti globe](https://crapaud-fou.org/images/chat-ptiglobe.png)'); + globe_said[b.message.user.room] = new Date().getTime(); + } +}, { + id: 'ptiglobe-direct' +}) diff --git a/src/reload.js b/src/reload.js new file mode 100644 index 0000000..ece9b61 --- /dev/null +++ b/src/reload.js @@ -0,0 +1,22 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; + +bot.global.text({ + is: ['biz reload'] +}, (b) => { + function reload() { + pubkey = exec("pm2 reload index --force", function(err, stdout, stderr) { + if (err) { + b.respond("Une erreur est survenu: " + " - " + stderr) + } else { + b.respond("Biz a été rechargé") + } + }); + }; + + b.respond("Biz redémarre ... OK dans 5 secondes") + setTimeout(reload, 10); + +}, { + id: 'reload-scripts' +}); diff --git a/src/repondeur.js b/src/repondeur.js new file mode 100644 index 0000000..6e3b5a2 --- /dev/null +++ b/src/repondeur.js @@ -0,0 +1,12 @@ +const bot = require('bbot'); +const exec = require('child_process').exec; +const fs = require('fs'); +const util = require('util') + +bot.global.text({ contains: ['me certifier','me faire certifier','je cherche une certification','je cherche des certifications'] }, (b) => { + // Lisez la licence Ḡ1 ... + let newml = fs.readFileSync('./src/inc/need-certif.txt', 'utf8'); + b.respond("Bonjour, et bienvenue @" + b.message.user.name + " ! =)" + newml) +}, { + id: 'rep-certif' +}); diff --git a/src/shell/aide.sh b/src/shell/aide.sh new file mode 100755 index 0000000..6e4ea10 --- /dev/null +++ b/src/shell/aide.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +auto() { + echo "*Je suis l'aide auto*" + cd src + + #cmds=$(grep "^bot\." *.js -A3 | grep -E "\['|aide = ") + cmds=$(grep "\['" *.js | awk -F "[" '{ print $2 }' | awk -F "]" '{ print $1 }') + IFS=$'\n' + for i in $cmds; do + echo "$i" | awk -F "'" '{ print $2 }' + done +} + +text() { + cat src/inc/aide.txt +} + +$@ + +exit 0 diff --git a/src/shell/g1-infos.sh b/src/shell/g1-infos.sh new file mode 100755 index 0000000..c48846a --- /dev/null +++ b/src/shell/g1-infos.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +node="http://192.168.9.54:45000" + +pubkey() { + url="$node/wot/members" +# if [[ "$@" =~ "brocket" ]]; then +# [[ $4 ]] && username=$4 || username=$1 +# else +# [[ $3 ]] && username=$3 || username=$1 +# fi + args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ') + [ $(echo $args | wc -w) -ge 3 ] && username=$(echo $args | awk '{ print $3 }') || username=$1 + username=$(echo $username | tr -d '@') + local pubkey=$(curl -m 5 -s $url | grep -w -i -B 1 $username | grep "pubkey" | awk -F '"' '{ print $4 }') + # TODO: local pubkey=$(curl -m 5 -s $url | jq -r --arg username "$username" '.results[] | select(.uid=="$username") | .pubkey') + [[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas pseudo membre de la Ḡ1" +} + + +membres() { + url="$node/blockchain/current" + local nbr_membres=$(curl -m 5 -s $url | jq '.membersCount') + [[ $nbr_membres ]] && echo "Il y a actuellement $nbr_membres membres de la Ğ1 !" || echo "Service en maintenance, réessayez dans un instant :coffee:" +} + + +$@ + +exit 0 diff --git a/src/shell/helloasso.sh b/src/shell/helloasso.sh new file mode 100755 index 0000000..aed2c84 --- /dev/null +++ b/src/shell/helloasso.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +ids="axiom-team:tYrjD6rrfStJXBqHhzNET" +ha="https://api.helloasso.com/v3" + +adherents() { + url="$ha/campaigns/000001053192/actions.json?type" + curl -m 5 --user $ids -s $url | jq -r '.resources[] | .date + " , " + .first_name + " " + .last_name + " - " + .email' | sed 's/T.*,//' +} + +adherentsSoft() { + url="$ha/campaigns/000001053192/actions.json?type" + curl -m 5 --user $ids -s $url | jq -r '.resources[] | .date + " , " + .first_name + " " + .last_name' | sed 's/T.*,//' +} + + +cagnotte() { + url="$ha/campaigns/000001053192.json" + curl -m 5 --user $ids -s $url | jq -r '.name, {"Donnateurs": .supporters},{"Fonds":.funding},.url' | grep -vE '{|}' +} + + +$@ + +exit 0 diff --git a/src/shell/liens.sh b/src/shell/liens.sh new file mode 100755 index 0000000..3412421 --- /dev/null +++ b/src/shell/liens.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [[ -z $3 ]]; then + res=$(sed 's/!!/:arrow_right:/g' src/inc/liens.txt) +else + shift 2 + res=$(sed 's/!!/:arrow_right:/g' src/inc/liens.txt | grep -i "$@") +fi + +[[ $res ]] && echo "$res" || echo "Aucun lien trouvé avec **$@**" + +exit 0 diff --git a/src/shell/tata.txt b/src/shell/tata.txt new file mode 100644 index 0000000..bf3362b --- /dev/null +++ b/src/shell/tata.txt @@ -0,0 +1,22 @@ +2019-05-03 Rémi Colomb - gepi@riseup.net +2019-05-13 Chrystel MAGENC - chrystel.magenc@gmail.com +2019-05-17 Cédric Dumond - cedric.dumond@free.fr +2019-05-17 lisette MARCAHOSSE - monnaielibre66@gmail.com +2019-05-18 ELOIS SANCHEZ - elois@ifee.fr +2019-05-30 Rémi Colomb - gepi@riseup.net +2019-06-12 Genevieve GARCIA - g1.genevieve@lilo.org +2019-09-04 Pi nguyen - contact@axiom-team.fr +2019-09-10 Jean-Yves Toumit - saiolar-c@yahoo.fr +2019-09-13 Nicolas Chenu - scanlegentil@hotmail.com +2019-09-22 Jules EMERY - j.emeryan@outlook.com +2019-09-25 Etienne BOUCHE - poka@p2p.legal +2019-09-27 vincent dardel - ehvince@mailz.org +2019-10-30 Arnaud Langlois - ar.langlois@gmail.com +2019-11-04 Nicolas Chenu - scanlegentil@hotmail.com +2019-11-22 ELOIS SANCHEZ - c@elo.tf +2020-01-07 daniel leporini - daniel.leporini@gmail.com +2020-01-15 Emmanuel Salomon - emmanuel.salomon@gmail.com +2020-01-17 Fanch DAUBORD - fanchdaub@gmail.com +2020-01-30 Damien Leroy - damienleroy77@gmail.com +2019-10-04 Nicolas Chenu - scanlegentil@hotmail.com + diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..00015eb --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2489 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@rocket.chat/sdk@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@rocket.chat/sdk/-/sdk-0.2.7.tgz#0133dd393838dda18db623124c005fa2c1e06626" + dependencies: + "@types/lru-cache" "^4.1.0" + "@types/node" "^9.4.6" + asteroid rocketchat/asteroid + lru-cache "^4.1.1" + node-rest-client "^3.1.0" + +"@types/bson@*": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@types/bson/-/bson-1.0.11.tgz#c95ad69bb0b3f5c33b4bb6cc86d86cafb273335c" + dependencies: + "@types/node" "*" + +"@types/caseless@*": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + +"@types/form-data@*": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e" + dependencies: + "@types/node" "*" + +"@types/inquirer@^0.0.42": + version "0.0.42" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-0.0.42.tgz#2310fd8623053bead72247adae416aa32bacdf0c" + dependencies: + "@types/rx" "*" + "@types/through" "*" + +"@types/lru-cache@^4.1.0": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-4.1.1.tgz#b2d87a5e3df8d4b18ca426c5105cd701c2306d40" + +"@types/mongodb@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-3.1.4.tgz#f0f6dc8d509500c4a8213238066b68f0c8cb25a9" + dependencies: + "@types/bson" "*" + "@types/events" "*" + "@types/node" "*" + +"@types/mongoose@^5.2.0": + version "5.2.5" + resolved "https://registry.yarnpkg.com/@types/mongoose/-/mongoose-5.2.5.tgz#3a8467549744c105515299acc6f590e5403fb277" + dependencies: + "@types/events" "*" + "@types/mongodb" "*" + "@types/node" "*" + +"@types/node@*", "@types/node@^10.0.0": + version "10.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.7.1.tgz#b704d7c259aa40ee052eec678758a68d07132a2e" + +"@types/node@^9.4.6": + version "9.6.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.28.tgz#198927ce0786106ec2a7c8652d46d5f8b87bfc5f" + +"@types/request@^2.47.1": + version "2.47.1" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.47.1.tgz#25410d3afbdac04c91a94ad9efc9824100735824" + dependencies: + "@types/caseless" "*" + "@types/form-data" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + +"@types/rx-core-binding@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz#d969d32f15a62b89e2862c17b3ee78fe329818d3" + dependencies: + "@types/rx-core" "*" + +"@types/rx-core@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-core/-/rx-core-4.0.3.tgz#0b3354b1238cedbe2b74f6326f139dbc7a591d60" + +"@types/rx-lite-aggregates@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz#6efb2b7f3d5f07183a1cb2bd4b1371d7073384c2" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-async@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz#27fbf0caeff029f41e2d2aae638b05e91ceb600c" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-backpressure@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz#05abb19bdf87cc740196c355e5d0b37bb50b5d56" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-coincidence@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz#80bd69acc4054a15cdc1638e2dc8843498cd85c0" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-experimental@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz#c532f5cbdf3f2c15da16ded8930d1b2984023cbd" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-joinpatterns@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz#f70fe370518a8432f29158cc92ffb56b4e4afc3e" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-testing@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz#21b19d11f4dfd6ffef5a9d1648e9c8879bfe21e9" + dependencies: + "@types/rx-lite-virtualtime" "*" + +"@types/rx-lite-time@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz#0eda65474570237598f3448b845d2696f2dbb1c4" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-virtualtime@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz#4b30cacd0fe2e53af29f04f7438584c7d3959537" + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/rx-lite/-/rx-lite-4.0.5.tgz#b3581525dff69423798daa9a0d33c1e66a5e8c4c" + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + +"@types/rx@*": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/rx/-/rx-4.1.1.tgz#598fc94a56baed975f194574e0f572fd8e627a48" + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + "@types/rx-lite" "*" + "@types/rx-lite-aggregates" "*" + "@types/rx-lite-async" "*" + "@types/rx-lite-backpressure" "*" + "@types/rx-lite-coincidence" "*" + "@types/rx-lite-experimental" "*" + "@types/rx-lite-joinpatterns" "*" + "@types/rx-lite-testing" "*" + "@types/rx-lite-time" "*" + "@types/rx-lite-virtualtime" "*" + +"@types/through@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93" + dependencies: + "@types/node" "*" + +"@types/tough-cookie@*": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.3.tgz#7f226d67d654ec9070e755f46daebf014628e9d9" + +"@types/yargs@^11.0.0": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-11.1.1.tgz#2e724257167fd6b615dbe4e54301e65fe597433f" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +asteroid@rocketchat/asteroid: + version "0.6.1" + resolved "https://codeload.github.com/rocketchat/asteroid/tar.gz/a76a53254e381f9487aa2a9be3d874c9a2df6552" + dependencies: + ddp.js "^0.5.0" + faye-websocket "^0.11.0" + q "^1.0.1" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@2.6.1, async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bbot@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/bbot/-/bbot-1.3.1.tgz#afebe283aea6fcd3cda8869f46c6e84b7ec7a905" + dependencies: + "@rocket.chat/sdk" "^0.2.7" + "@types/inquirer" "^0.0.42" + "@types/mongoose" "^5.2.0" + "@types/node" "^10.0.0" + "@types/request" "^2.47.1" + "@types/yargs" "^11.0.0" + chalk "^2.4.0" + dotenv "^6.0.0" + inquirer "^6.0.0" + mongoose "^5.2.0" + request "^2.88.0" + to-regex-range "^4.0.2" + winston "^3.0.0" + yargs "^12.0.0" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bluebird@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +bson@~1.0.4, bson@~1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz#fe3ac73c00c3d865ffcc02a0682e2c20b6a06029" + +chokidar@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +ci-info@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.3.0.tgz#ea8219b0355a58692b762baf1cdd76ceb4503283" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + dependencies: + color-name "1.1.1" + +color-name@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-name@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colornames@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" + +colors@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.1.tgz#4accdb89cf2cabc7f982771925e9468784f32f3d" + +colorspace@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972" + dependencies: + color "3.0.x" + text-hex "1.0.x" + +combined-stream@1.0.6, combined-stream@~1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +ddp.js@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/ddp.js/-/ddp.js-0.5.0.tgz#f977ee4207838571203bf781dafb571d0aebd66a" + +debug@3.1.0, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diagnostics@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" + dependencies: + colorspace "1.1.x" + enabled "1.0.x" + kuler "1.0.x" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +enabled@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" + dependencies: + env-variable "0.0.x" + +env-variable@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.4.tgz#0d6280cf507d84242befe35a512b5ae4be77c54e" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +event-stream@~3.3.0: + version "3.3.4" + resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +external-editor@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.1.tgz#fc9638c4d7cde4f0bb82b12307a1a23912c492e3" + dependencies: + chardet "^0.5.0" + iconv-lite "^0.4.22" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-safe-stringify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" + +faye-websocket@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +fecha@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + +follow-redirects@>=1.2.0: + version "1.5.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.5.tgz#3c143ca599a2e22e62876687d68b23d55bad788b" + dependencies: + debug "^3.1.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + dependencies: + ajv "^5.3.0" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +http-parser-js@>=0.4.0: + version "0.4.13" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@^0.4.22, iconv-lite@^0.4.4: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.1.0.tgz#8f65c7b31c498285f4ddf3b742ad8c487892040b" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.0" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.1.0" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kareem@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.2.1.tgz#9950809415aa3cde62ab43b4f7b919d99816e015" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +kuler@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.0.tgz#904ad31c373b781695854d32be33818bf1d60250" + dependencies: + colornames "^1.1.1" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.get@4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash@^4.17.10, lodash@^4.3.0: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + +logform@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-1.9.1.tgz#58b29d7b11c332456d7a217e17b48a13ad69d60a" + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^2.3.3" + ms "^2.1.1" + triple-beam "^1.2.0" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + dependencies: + mime-db "~1.35.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mongodb-core@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-3.1.0.tgz#af91f36fd560ed785f4e61e694432df4d3698aad" + dependencies: + bson "~1.0.4" + require_optional "^1.0.1" + optionalDependencies: + saslprep "^1.0.0" + +mongodb@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.1.1.tgz#c018c4b277614e8b1e08426d5bcbe1a7e5cdbd74" + dependencies: + mongodb-core "3.1.0" + +mongoose-legacy-pluralize@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" + +mongoose@^5.2.0: + version "5.2.8" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.2.8.tgz#dd74ce0c4df803cb816c37ee1228d6663e2c2254" + dependencies: + async "2.6.1" + bson "~1.0.5" + kareem "2.2.1" + lodash.get "4.4.2" + mongodb "3.1.1" + mongodb-core "3.1.0" + mongoose-legacy-pluralize "1.0.2" + mpath "0.4.1" + mquery "3.1.2" + ms "2.0.0" + regexp-clone "0.0.1" + safe-buffer "5.1.2" + sliced "1.0.1" + +mpath@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.4.1.tgz#ed10388430380bf7bbb5be1391e5d6969cb08e89" + +mquery@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.1.2.tgz#46c2ea6d7a08c9b9e0716022fb2990708ddba9ff" + dependencies: + bluebird "3.5.1" + debug "3.1.0" + regexp-clone "0.0.1" + sliced "1.0.1" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +needle@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-rest-client@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/node-rest-client/-/node-rest-client-3.1.0.tgz#e0beb6dda7b20cc0b67a7847cf12c5fc419c37c3" + dependencies: + debug "~2.2.0" + follow-redirects ">=1.2.0" + xml2js ">=0.2.4" + +nodemon@^1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.3.tgz#46e681ee0dd1b590562e03019b4c5df234f906f9" + dependencies: + chokidar "^2.0.2" + debug "^3.1.0" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.0" + semver "^5.5.0" + supports-color "^5.2.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.3.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + +npm-packlist@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +one-time@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +ps-tree@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.29" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" + +pstree.remy@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.0.tgz#f2af27265bd3e5b32bbfcc10e80bac55ba78688b" + dependencies: + ps-tree "^1.1.0" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.0.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-clone@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require_optional@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rxjs@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9" + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +saslprep@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.1.tgz#b644e0ba25b156b652f3cb90df7542f896049ba6" + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + dependencies: + is-arrayish "^0.3.1" + +sliced@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sshpk@^1.7.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + safer-buffer "^2.0.2" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^5.2.0, supports-color@^5.3.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +tar@^4: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-4.0.2.tgz#f4556608ab0e94adf697ec8aabc1a777cee80126" + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +undefsafe@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" + dependencies: + debug "^2.2.0" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + +update-notifier@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + dependencies: + string-width "^2.1.1" + +winston-transport@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.2.0.tgz#a20be89edf2ea2ca39ba25f3e50344d73e6520e5" + dependencies: + readable-stream "^2.3.6" + triple-beam "^1.2.0" + +winston@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.0.0.tgz#1f0b24a96586798bcf0cd149fb07ed47cb01a1b2" + dependencies: + async "^2.6.0" + diagnostics "^1.0.1" + is-stream "^1.1.0" + logform "^1.9.0" + one-time "0.0.4" + readable-stream "^2.3.6" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.2.0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xml2js@>=0.2.4: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + +"y18n@^3.2.1 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + dependencies: + camelcase "^4.1.0" + +yargs@^12.0.0: + version "12.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2" + dependencies: + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0"