From 705d030823357f48ef4694fcc81ea23ab8cb67cf Mon Sep 17 00:00:00 2001 From: Libo Song Date: Thu, 7 Sep 2017 21:42:42 -0400 Subject: [PATCH 01/35] Output the diff image along with the original images for easy comparison. --- .../PeopleComparedToPeople2WithOriginal.png | Bin 0 -> 222434 bytes nodejs-tests/compareImages.test.js | 6 ++++++ resemble.js | 12 ++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 nodejs-tests/PeopleComparedToPeople2WithOriginal.png diff --git a/nodejs-tests/PeopleComparedToPeople2WithOriginal.png b/nodejs-tests/PeopleComparedToPeople2WithOriginal.png new file mode 100644 index 0000000000000000000000000000000000000000..7a723ba77c5f141366a0991b1d26d8cc93db1c89 GIT binary patch literal 222434 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%0DT6^DL%Z4BOAEouP`)VBiLBM|f zEiK%NL>EM?u5P7LdWbKMjoID!Ur8@Amhv(!Ss$>nQD*|OP(LFO6y#Zab3q~i%#9QT&+F^0iUU+riN9#rfRs!SU~oCKkj~c+tvi!L;zz4 z_xRNl%KK71g>?t5)C8FLH6dHKd+!Jj5&SCS9FlaJlSuf9{r6(P#@UiV0Tu&oL&S}dyrL>9~~S*K#Yfg28n~n40%-j zQ0Qo~1ZG-Q-iqOlsK^s{;@3?JP&I;rC2MuHo0V-mvVnj>T2eYAi#5G?+xn!>@5D~~ z_s*>=Gjo)pC^ethX#MC;t6}e34tbI3nIhV)yKiM`pmr!38(!&=lqH9!Btw|qDK=L_ zLJJ2wIMU1!L16bqVbOUxQIy|9m8P*Tk6g)}oll{+@_~9YwqSC&72BoA0`jhJ zU)=&6_@=I|38j{WuWVr$%e6YklamyDsdwGEuSTw7>-Um(@%A3RZPtUC3S}3U$aGyp z0&AbV$l&5X6j7^p3@$(L%O;RoS~+D@XxYSA>s_&WFmAV=HThjay3(y&h1a^#N%OtS zRxKC({9lAfYq(2_6}8~uvU9SjRJnBU*i7e3Z3bzWGyQv^XihaK!Uz1oDn)tg9(4;! z-dY%DN>gH^u3Ho2Ug*Pv0^DVr5RV#sI3}Wb@P1{PFu6+$lJz3-%jh0MA`7dVop)G! z{bQ-rwiyf3`C8c>%7XCT~MVu$Ys`b#h26c;(hbKEoEh8fJbixjc9d zx~Y2%eLpeq-bN=oyT0oQ9EWh-rUu0^CvIQ@UOesh3(U`1TjNqSgO~3&#p+c-Xb(^C zkDH0N>%Rw+YuX1ef=x!NM}RJDa_eFkxUhr5J%+^<%+i!h*3*we-yH* z6b5tDxk99mhp&AbwMka|{Y%Wcugpx~w5=$8X`a{ijGiCe}hQr9CDC zho&{<0iDK`hNiRFJK3CRRX!O<90TLacNlg8lZ;IWXj~6O6O`w7x&CQF3G$<}yfZlP zm&)WszTfoIe?dQ9K1LELEzSG`Q}9X+IG8gwnxnw-*As^rONjWs(|eK~~7cl8^I zsFwOcgOG~V9_OxEl9xv?l;f{Tt9t}piYsT(HK0tP*O0VXg529`CEp0zBJe|m+sJVSs7msLeR5`#T|+9gCep{aE)@;$Fm;3! z=0Z?Ml-ubh1vRM!##E*G*m+oMn2Bjya;&7IJmhN zkoPZOmZtB%`qidUqDbo3;N9HZaOX}MVfS7TZP%~P3IzuoowbRH8gC)fy@XfAdWF@I znIG{Vo^=jPK0Ix+yrQ4hoFq-gSmw5)E790Bb1Vz-IFeu>;-M%Zsqa zSh1~rhPd%U>DlorA_ZIeI8az{2?)p=vYN(GOtLHrRd*kn9Lx5&Zs9GR^m?hD#B0!Y z81NrqC?s3KMOxc9#9?dFF=SSmz_Q@a)JsF|7LYMM?PzqZWe->j?bnV>G~4zMie)!p zhf1-E>&9wzUS4-^xu}qb|ImqXr3Lo9T4f6Co*|w-Q5`l}up(mmxs+`2jmZodyawD& zVL$X&iv_$y&_WOM&?Lg(ol!nJa_|zci|~A$!b$(o83qYItortc+F6*py2O@zBlzb| zFBrp>WG@+^(wC-gcyx4mnisiS&_it9YfKIPn1BFzHluA0AANT4@po()IRg6-kgqY_F&BU*^h?XWEn1NV;GGHppn5>OEj%qh zkF)1cCvJxUV-TXh0r&kmo_Lh>8>yr-4(jd(Igl7`->|63s7>&R@MI$WK;pL|k`AJ- zG!;!+X`kOnjm+A{)|TOSEuy?45?_`0MFJEU+os^u$gSGCay;TCit2egp3&SY8`G#W z=!feMpA{NbDT|Q?pi8s{lB!##^jA&x>OEXKKSEJU$gS!Tv$)aP<3^Me+v>N%r#NjA zYY>`*OAsqMiR4OAQ%c30=l4MmP$AT?4^gNgXk&<*JE(5%67b3L*;J(!>r|;%YWWs! zOnv^{S}KI@B~Zi>5g#9K*1e`@-#trm1=L0mC=G?cd+VT>!nc#c_0-o5c~D?neoBCugsT@;1g-;lFG9AxBT*!G4;A5QGLk{$_k*Xr1NrF67z$o{s*x|7BX_cX*xX zO&?@#y-43Ovrd$!r#ZZiZ14W6_Qu?AYANWj{B4mqrOtlISSD})|8aG)dluHi_$}A? zrG_j44==U3a_MYhdg{8RywKFtDdN|hoH@r7mJK3*+=+}j^$^~3V(F#4gdAyz7Qq=u zeg$N-$&17Fn))u;b>^c_PH~wO{Z||GJ3*gV`ykI~h;pqDvKC=}H3nm7tX(r|JNNJ^ z?{A~S|5$)>|+XO1i(P6(ar7XCYEk}XpMIQIosYT2?Sc*J+m{y<&jZico zVja2G@b}my+aPzIgrMRIfd;0z1z|kR@<-D%+Ap}VZT4FbQrF;|I&kF_cf zC!zjpF-c)wfiurN%r(00y|?o}P@TVj9(|15e46n1jJOg_%(BhVpY9V(>y2DRcVu7U z(OxAde1y)syE=yn_RpWkhJ2ArkmHZV#7bt#tK-Go+KEHcnW+~wVwjqBz9jwS6!9S9SM>?(w{hKVR-7pMFq$AW^cwD%9KEL$6c51sNLWuc_|$_<=Eyd3XJ&DH7lPA(kP3WH~M{`l9-GyZ~5Qz9iwdb)XsdW{`>axB6;4hwrEO0|iC!*iJz4f~( zJiFvxkpgk0WS@DazSKEgI9a##E%jWFVHGWpEq#3Z1OHB?@_K#5KrH!~`Br?~5K6Ng z>@ueE_%z1$PXB(qM(nSu_1Vq8`>nFvwetAtZu{sx=`@e_9bR+>Kq)F$Q?g$Fn|7!Sf-o1C$b4A<}y>aUdtX{TTgj*#q za&u9wtgLhm49+m$%o@Jg59A!Q(i?!KTf@CRsV4IP{cd(v)(`y}sN1o_?xdOMegvO$ zysnHt(Hs$Cc5y8a{6F%8?~;fkgHTc7F1YjD0dpIaJt~|ySEQDNKYXKazB}M4v%o8Z z65F-t-QMS}Vv#iW%*Qh+9YT&ygOb0JK(q!6Im|Ukcj_9BXL#_+B9Cv-sj9`}^#8PB z86_n+^QzSP{VsPyLI_826cdA)st$4dB*@VxV(zhdBN7BlA!+pc_e4|X;p5_gC96}l z+1WtW52d6Q^d~GQ)FUC%4xu@mDUGT$0^+OV7U?v|NCIA`J6sX}2LmBqF5o~CVV zI5y5a90CeC1e+& z>f;9o;r{q0R@J?dI)UkQnMd#p$KczCjcZd4spjL&CaNZP7z*U8lWW3TL{!W9If-y!optkbEzH(!i5fdkJa8n);GlzPjdrZdt zr85pyc@cfA35v1B@eg3zxA{=e&8-^03IYT1#cMFN+FIIG6q{V_bmjg(j<4^m*`}fX z28b+r`oHc>zkFsXXRmFp1MtOfk9?0zvp!+UK5LKSZ!ZTeRKURH;XL-l!(ZgjVx;ZM zIySubp-|Y3@D1N)KXCl^x{qQNmFh;)zYu@3@IA?p7A~g0zQ*9-7HM(dWJsxE@iqX=3UAQSGp47lO!c|DqT9aYpQ_cXYyzdSC4>4xyz6Z{&=%VoT2 zQJhZI4V{5X9Pka+YMdWmxm<3ba-p|%Db>a4pl=W#%&BR#TB?jB%4}BK+_C(g5>r$} zF*F=eXTR#*zI8Vc#cIlyIqpq2W7@m0fW!6WaC9lt*mC6gZp^}V*MJ*(xLx+6#&F6;mPU5w410T6yXTA zhWif{0m-NT5V9!oah%-TT5@UpOKb2m^Vy=uUJNLbjm(m86e@7cb$mA5nqXPUCozPN z8Y%mPrZ~I#=7FxkT&a*GK1h#(Dt+X)k1)9UPSDv7?7z58ZKKK>`zrJtw!rvrIg){F zCV59v%sw`aL!;u-bF00BAIsV$R+ptNqM2OYf8u_HLE;cL{Xj!O{?mj% z>3TIy%_YJ8TG^G+xcXc9M{^-GxHKkyq_?4A?g?t}7SWQn!FK{h5zkY3+iOh74xWdF zwan>f+-IjCKfBJD!Vw(vF<-G_3<5Si{Eu9Wl&P5gR`kxZi^=-zM%d{?1f(L}?|j>+ z-)sFV+|fvF0aPU5Jhlu7$al%CGsY}c2htYn+uP+FZL-MYMua$j4!3i7jxW^>1AkyL z@2%;7hiR?b;VZaf;*SYecT3QL|AhT74upWvZpehoWfNT;tyf;%`&5v=MO@IyE~nbZ zq6B7RLP3m6vwm-b@$_68{|eyXHHzbJKve!VmoHGc0Ua{x1m zYRHn18wc?u0HR5ki6!H;E9Wo~vgkH@g0eJjKH{$HF(yD`hi6&ddK}f9iu}b?EQ2Vn zNv@0?*b-V;ID~K=O<_uLjD&ytbfw(*{?EIz59-o zEQtMCv%dLc0S_diZV+;3QWuncb`$0!tud-l@Bl>lIzv-(A&r8S^ez0jCHgD5I)AFB zx{GJm)JifVD?=%IjMwB&7&KeM5Y@rGtIUqDgdm2%2o4izr4~0sgPHlE+p-jS8s$Q` z(>KFf4q;ve9QbYI%4&N(@CL)(^2jAjKT#<-OrfMj20=Q&B`tcC!J!cPCj>yg!d)Pi z{`l+A$j+B2FBC6knH=AP-@d7{KH|CluPOiH*=jAYXzS{)qr>9gml~a_u9G)-exE~T zp!*9e;}ncRRJ7bxNY`j-wWK)A1LAGCL_{W6nydlVnN~8(mh0TNmVjp-XmldeA9BiQ zjHT%YR`@zA4sEf1JLo|ooo8v^4;RT>hLE$e3kRNrN@$3*B^ZAx{otnj^*zNKIW{+< z9Dj{q#WsUROh7HrxoNj$+Q-B$>v?#5!6RbskKiOhs3_DKXEi)B94e&+W6XmhMCnTM z=vUq+-sR@taUH^1!cRhcy@{g!5oE$Vy;}5YBrnfRq}7;V;$j&zsae&!z#HvoxM1OR{^3BqZu(SI)!Qrq;g8LN{aD%yxmm<=z;l#DowwD4rjS>Kswl;8w`9G9b$m!VXx%Tkesq@R;SH-Nai9(Z0#%%5L zz_jv2@$7>z?^p2M`=JQrQpmXQby=w0em6%`+v_QS#1iy&B^nUi^9ts#^vbH2!{*3woZLV0n1raKaza%;5GQA6JIgSj%(G?^45;(q!N!Y^{u|!dq5C@Y(c+(({%lqRSZ-nzw1%5kiC%ciG zu$yPf><0;JHHDeeV?+6%hjg(3jNPU%HQ(!XwP=Y?JrEqafi!w!Nv2*xi%qGvF9Mq3 zvMT7B?kox`L*j*Rt!g;P)te#fL}`lI6}`~bGP6@5qX3ai+s2>pOIm|nL$|3{cgMy~ z0EbN8OesClXOqo{YJ>1}q{u-;We=OYzGTFSyGK%ylFf~ihU6`@O+p+fYi4zf?P}Sx z@0BN9VXhvrTtCmM&!_f;R(sk=v$+Pw0FEn@qMZD2c2nCW#GYe4lJGU*!Rcp8S_*wk z`;jul?RvrX6gpI{Y&4#R5AR6)Nd(1zOt1jRMxJO;K~Ygr!HZJQx^f$b{nAO$ z4E+>zUJ`Q+Z%1RjR8EIPCj>!met#1;!RZ47Sc9EUbXullrILKzn7_zXE-YLueDJTh z{^$MhGC1SzuBhZCi|w*Y{=JP&%R$w2;lzUcU8xqSf);vhGbkDx-rSL6Ft(>Nb4QpI z5)OrztoGaKtJlr8lv2i2k#;&B?xGt!!9^vEu~<95-@(k6OT^yB&9C@AFGg~0 z7hMwKBrUn*sa2&dBP$DxNjf*Z_y~YedR3KlMnJ()QszpI+S=Kla1g)&2q3i3H4)_n5yN zk9u!C3f6}MXGK!z?tyuBea0cuVMCcDW55W;k)5z;OS+{{mdPrCa|c zZREdv<`NK$N(vtGQFV0re&e#%J@XK65_%_ z3J6R~byx)}khexZv=CehVghZX<AVorvHsE_PmJ zUE)Ex$rgrNe(bjvG2dPvLs{dg4$2Bae(wI`f1cZfA&loPbYGsSqf4_YoD+i8}78op~#lkVzjZD;X}j zAx8gUeusvKF^gRy^zGaJbuyW|tP$co!&tik28E8j^c7g({owePuOLglw=7ice#}nZ z6pnW^w#wLaay(550I z%+4XkFvHCii@@CgQ^@0b3hoKo#3wo`cCV$mY_}Gcu$fls4Cf}7l3J4y6XQuj$&iqu zUPeKGe;AA|hLRAB8y81NtJezK0gVa*3U9ive=noH2>mmlu7N43S23fOJ3;8CVaLj~ zH{!I^ky2vhRzXs@V;q>*T!52hf86mpCc*tidIe;y>%8pmU+_FUD{dRq-~q%GK*;a4X>{r+|t@BIE+5&}tZ8-94oWMjQL#7+n3cPGXVLBXLr zXO~&EB#0o;o4Yd&M#3NT&oVay&hXojKL!0oNLU|ytpjMsC4s-jXYf>K1>^Ks5ajq{ z!Q=T3dR-2%D(J-neSRGeas!UVZMqLobZzcr)m@T$iXa)=BL(5>2>~)z)M#?89N|gd zY#gCc2X?eDRuoTNM%Sl_{}|fR7#`e49y11c9V#a&l7{Z!4U_Hl1Xs3ZU7pE_oAXT8 zrsnKjEjg$4A{TlG_*nQe`eEF;1Nq>${ls9MIV_L7`uyonw7qg0q z(MowJ7FSw$|GG1et10K6ptZ>b@W+0;(peie^-T(?sgPJbNKPwL@tGvB&dbST4RI{) z1a~_T-8I(1ToAN{;C$L)(H}{GmcpZnQE0%)pc!aW*qNwc`Ye3<|4i{Xz^3DAjVPzZi)ng$kc?YbDj)TF|iJA z={bejMGXj6H7)!cIk_y=^#GdyJeD)5K4aYI)f_$++$hl5Ecs66?c``_^YJgA)44Js zlwfr9>q&1$-wt{!EMn?r{q?YNlcs8eImjxC<~S`GIIghy;T5-0)DxocjWI9ZeZh|B z=TA?z*ZE0*wj4WRKu~4NO(fFk5l3uJ=l^IKZaZst~l zf%59ySr{05y`^VsZ@T_&?ZNMnMF=~(rF+Xdr7QfnEhHaVSAI`q%$K`=?lE_fs1^Oh z7I@M-_2@Y}y|m?aua#H_h_TK6hL%)c=E$hxX&-x`=`Y)#ZbTneAAwqn_|^aQP4llg z2sE&_6;(&}fS{BT#;uGfwBfgU&YME{EdB2XOjjp(tT7JYqMgi_S1!T>c7na*^ai4{ zwzO4<{ak-l{G$rjO$fOdY>rjR&0JX(cM6Kdch~Sf!GFgfW>=EbQU*!{`S_y)rY0|H z(E3-UBU@9q6z-#brp#;ud-8D}f2*V^yku?RRb(8b#G%LhObm!Mhi73;TFU&MheH2u zjbvri0&+h;6v@ZPo?>x3Wd^hc+gNUSKvZpRWfd>8W&$lOu;`6qn?YWJbw=3b0`!&{ z1E*vEy&T|seX*)sZCp4gOD@JD3xA6=HQdzJGK0@64B?Gy#2?sV!aoO`dTIVo3t&Xq z#mc$Yi5kIPeNZrH%Ly+bjS{b{K}bTwu@u$ML-O#=cYh{76sRZW+=_5$z2cN{;#-kf z1ZTNUUvC~fF&g*UG5_$NX4HEnw%{+zlRs4m!2d?Be5<~D`vXMLYGF`%d`FUCY!NJ< z$~$051OfD-ZFKMmRiX=I!;9vG<%w&_6J zz>FaC;YOgfu%7|B|GPzgZ#e-DFMX;71Ck;S+DIeSwhbyyFi%?ku$fO;%Y@>jB`3_@ z0g?8Z|6p#uHgdq720mH;LYtsVrVCM}eFPUFukVPd}8GmMbQkzsf^Jng4~s^#i~T<$j4CH;>EbTV@D z9Tk&`Yy2lON>8%dILx^&o{sExXgMR;*dUom`mS2uz-PC2h{4(dyPJUr$<%ROeV6 zzZeh_7SeJ@m~xA+-Eo4DA}t%fH?vB@Z~Om#g$4EPFyt`>&)N9XjnhhNOK`HZzdLRz zBFoSFhG?kw6?IAK#g4W0^q?s_kqpUSFKo}}ISW5(hpemJ6}Q=Zx8JYL&F;n~3_Ei) z_G$thx3wR1^67ry_b)13X`_&KZhBi>YZ;O>U}As57w20AKV{^4#jw+tXvdAl9>xT- zVus_wd<>(IQQ+*Ai$;g4)@ZJ=tVw5Ii%{01jQ>T=*dIm{qEEVuH7Pu-zlI#;eL1TS zX=Lz(qH^wb^m-l2+PvyCSkl|iqe2?CrO6R}yfy~kdKC_5NMJGBI?)f8k>>A-Q`X1K zFc>mfR&a`$bI}y_ySpR4|5NP|*J269Id&ndgj@YAMH^P1vAy)*_U-M9QGrFV^e% za=fS;eF}RMK8D=1<*??tBx+<`vLuatQMKJL}xAZP++`shiw5g1c7+EE&& z%0F7C!Vd{vRQ8h89n>g{^q9LWay6dRq%`@kxmZYwQY!A25#!TA`SDe38YKaefq#20 z))qfIg`NlYY`nDRzjm)Yl5iUb`8XZ44)u9@``D&_S)3Q@U%Je#xZZd~)v*{!%=3M{ z3--RmY1=<@&aFMqsSDbfQv%c~ZorFe{BQsP#OlUxGv*7E6H)V*rFR=-V|WZoTGT3fpZGfChvQD$ z!2KP`>7{bfM{1xFehbh1;s=arHs1Hh>Ti?DfV(mC^Fzkk;aN$c4-uKIjOfib=h(N% z@`o>?&*lJ_`K=8lKZxo54I(ngXN6+ivjCzo79Bb-DXbIiOuJ+<4mz3pca~E}#=kdm zlNVe>(Wuk(B_!t%Z--ezK98+&s_Y-P`Jdu%%c->un_TSNgM))Of9-G?X!Hs$_52sC ze`-oFHEgDqIhJCCnMU2Bk)`Raf+tv6_qxR3KJuy}hSbyVi0;ReyICV2Mb7Q>O8O*< zB@<5f&oMIPQk0}iv<~P8Dfehck>a*Htl_2k_;q2fp&~ zXwIaz7vl6`@X53&X*lx(oz6raGjcc8BU;*6XTnw`fBwWW1ksKy-}`LdY*QEGG}!Dg zvDMsk)b)&nXG`mglZq#7o}+#?Nh>{A*r#W6VxDirqrmkkz-H1;%ewqOn$9Y!%`RNR zh0i!JI!e7E#zw9Q#t zs~<^ga%#11c|58%e7OKWL1m>Pq?ajp57H`ZoMn{}vZ4 zmxK{-GrV`Dzs3cZ)Mf3f+-ug&I-o)PC(u<_gP4aH$xKy4a8YKH-z4RHX2`N3Gnq?M zVcG*tqh2bT>!%tpl`O0Vq&kFfmDDvPLpcj@_D)k;av}l)w z06+5{y1`+TN3!E27MOES&+?17+tnxi^>m2YDF3r0Vf>sOV!%U(+`+q4X%Dddp7|m+ zQuGkcyLP1ZQ|xq&hVC{sP=d>@WD1Y8kfdIMHSNfae-Dr;2kMC2yCe(tM-$o_7pa^5 zd6~Q69rE z2^b)sOLn)k-WeC(U8S05|G@z`9?_6ZH_78vbv$I^ny}NyUp+gq6i-zhEB92rOAOs% zO)2*nqU(=GFUI#RPy4Tm#jk<9%2<+v$eOf%{wJ_$HxtX`;KXM!>e^ys#P~sV)da5R zbMe9DV)FmqMC;4%g0t&JidQcYknQF6Tc^EB0%)|u;B6k;`ETZ2U@(^G@(X$!0dayw zZP+ZosLee)AypERQJ7hnBzrbUk`7suqQ_p#?&aWMhauRxfQ!-w_0)4L2N#5ZLPYL> zL)?XjH|WvLf{ViLn0;&%2@SIDpAq%G%z22WC#$A^f3Z01=09v*SAPeuMd5mQtYt{%f`(E3dLD1^((+M$o=fBg07;Y65)sL(QAs{0; z#Xh-jW2XVz)P;U75kU{7(xYFSEj8N>;7bmDHt z_(54emCh$2QZZ&$0k*ovdY!cI=^$jZRpJj1ER z+<$uF)6s%#1)>0D@L!G>AGnsH&R(8?lk^tNRk>8g&FO=^VDX% zm5b>1<*{tHr%kx{{V)nx*1k!Ey9!NbnbrJzWjbxKL4`$P1o&hU)4T6&Mfu(09P=+; zEq~IK{Rn{%R1-_AW)Q@Lg=>1)0#|O|8BAKudn}iaO|J7Q_u~nR|w=3ueO@!?;F6JOvF9~ zSxMVbO$n%-dwv9eC`&zgQ;UN1>3e@p^ddAJ{v0SMp+F|EMGityiAi@ z9O9@hieEg(1s+x*x-a^@Jr(VF9Dk4T>y+I%=>FU3yUjv>kJ=F^)$s6E#(!4INWe9K&B(lEbQkD2SA_eOILe>2r|Z3K;ctINVDNh0m@T{dl;l_FHd zM4M++KLZI2rq*C}uYSLr^o+m%5;yrJDg(oYZco8_7ySC69lh*i|I=SVe!ju%zr@Ry zL$o#Uoo?3kj}p>fcm+8p(!5>D!qI5B%rKWtt`|XnzHxxjNy0EiYYqy`n$*P&Sh3v z%4XEr?@QBHd`8XqF(8bQxco#?i}oL{rjbc^_T|+A8XLb`T1yz4{J5w!HX94|SA~%s zxw$3>HTkm}V5luG_g~ZIa63KJ4-|$ldtvVGfbPqM`b(=j8_D@}3|g7|L% z(<_OV(C^wntytJUEh|D|BAS*A+DR+}Dvz&8`7Caql7?1&QdTh$;BZp4^2CA&Ld|F> zc@;BKSGI;0+pRlW4I{r^pqHVHxF<*}C3+EMUt^-3tsV(YfBsCJjs^Y)zMN&5K)T`Z z`_i*n)@u+urj^E0qM@cR!x<5^ZwYN}ZB;zv0fj4|aGlD|_W8EdNhMb%owC`Vt^VTj z!Nf}YIK;i!!GE-dWLQK?ZKpLwvdXWy|B{N6_U8|(XV$C|R|sX1K`rJX=04qf*;?Gn z$at9kH>1mNZ#Jey$zeT;J%O;F{q+((~15!vh- z$;|@_Z~?8$X(`IRr(neq>5TIRUq9nIXP|#E;tNQL?H8M~Phhs3Fd|QXbON`b>GNL* z?IGB(hX!o7<_7+pV`yq=lWu7%p}>+4)7?Be;eN>3RiTK;x{q4%9g zNG;1~=H7R?Yvdk)DF%Rf1CT)(&8DH^ZmlajWxvz0%RC?p418oi&nLO5JARZKV6M48 z_hctZ_XeD2EXL9OLXo$$P)R|wY6DDzfIEDvQ%O>eAI;hI^=(%=@M^w&ZZ7l_hEW7O zDV$%kp@%@G19t$&IvGm$%g(~P?$*0QAK3T!!htYAv-4Uy|FPdJhwziT8vXn4_ulgX zfVf(F8RnvrVpWKjWk7_EfBX)KS*_?2ek0_f{?^Gzv;50g; zszuhPZZ_t(VM?c>qg$SKDd_B1xc=VCdy4dWkeMhWT)$7Lz*B-Z6#{vz+k4j7BZO0g z?}U&EBO3$2u{3SVd~ElA3kA6-q5R14rwVfhXvE7>H*1Awv{i?N9Mr-v$8Yf7x>(a2 ze%`XZ+~+derCjbkxGdKTm%+RYcUjRKUf( zr|~cog%pZOB)`{JMcm>EpLv;l?&~Bu?ezCDb67$M8+yT+f!6~8f=XW)gd0?0LlWRHHqY1Ph zJpakG1kd}3_O!Yd`9H^p0OS4%ipLAUk>(Y6bNk;<*L|h*=rIC?ik%5GQUute8lRdT z5xizas|N$`sL`;G~<`DI(Pma^-T^|y|3 zAzH#O(hGh64OWt%qLz&R?Hp+=Gg=(0ubW+sB+5<6&{X-Ah&carY$Njy7d*u#NV!O= z!5*W@yGu%6^$W`Ym56^}%Hwn#4TpIP;fwsxC^IV(sdm7iM4Os6g!1jc*NvUdwVm3% z*iL9B5xj-_$B(@)}FrnQTx+yTkv-_nR=WJcO9>g zsjcw?)~RR+I+Irf#|L1`NgsL##Akd8Hhu>lFBU%;^tdgJOlf)zGMD+P*)ZCB7VHDn zLRAY}9R$Wyw+Y|1hjzkGfD)hZslQlX(^4prkV3Y|+Qc4v@(pW$vDG#GM3(w%bZ!J- z)_fXZ+kV*H0UqJ|Rx6vd$&tShn?A|ddOP7E!59h&vI(_*uqZ6yBcUF|ItubPctJY`?e+?U1j@WIXL6M+)zj%tQI( z7X^7W7&w6D+qUU?KTInZ>OtYqxq|RX{EhC0Q3JM0?T<))cVy)9WW%^~`9M2l_zjHh zzro}Bs)(@g<441JCpYl4T9)t_)EM;yP-L84J4c`!LO)?^6hub^#z9vq;rsi0_f|p2 z!NNeHhUe|*WRNG)Vw$j|xN+e__adDttW4(8_2g{QGWdSV ze)FGN=y0-mCSJqxcB&b)qk1%H{f3g2*o|#$!1gooixq;CkUuEEA;B0^B-y52KFfC` z**w|Z@0SQdDMsiIZGJER^(Z9-Rn&HjtrM}&5cBRRbza>Aa7i8cZ8k^YDG z?K~0u0 zn7`Tz*~B8MG#RUM&BEAHNPZusnl{eP|8^X2`GE>#_k9N&$9|z#7?7F#PDulDLflD; z7~?q8CO!dpe^i6*3sNdc=4OYquGc?Tqum+i*#IsI2p=Vv%~b>}^Dg@}D|7@J^Dp0m z$xjJaq+xckuBWl~ceONP({7do1Vq&sSP@h;mL!q#Oz{Mk^6>~5#7ay+1yg*LV}!N3 zG1l1O1AT7%duP=`U8QJld`}yET0!>7TF%A-oH5MweW1-EG>X;^+Xc2~x6&sNuZpI) zxcA#R9ueT`kSzXcGE8$tO8BY&?bDp>x3j_I9YGz74`?GIB7FV1k@9zyg-O=$y#x97 z3txwnpE_bue_6nFvnrAZejqz;8&s%Mj6GjQpeaN6x2V~ldQV!pTbm1CLNn(cZre8a zqq(!8PH94_%-~yFCxWTh_9YPY18Vqafru5T@^^h({`=}m>Ej~36$7B@ZDuS=H@|56 z;o%|Uda2%FP5A2aI=hVCremy4YkTG8q<{C_mg_s%5ZNwFecE_;Hu>M@<4Z=<9^j@s zbT9Y?g)GC@Kj4`{1g`hMs$hMgyTd==?>AuVP7&a6Pi$O~lqWoHWOs7fm0oH5^7_Yb zo^oQYvHSAYaX+tPr(4^irc3G2v5Le)86Fu^DnxR)cZoBuJ{qvt_eo=JXA^QP_ZD+f zhL!$YI(kE*-pg^>H;B0u*GG-8_&!BL`Owj$<+q>L@uxN?FY*1(34Z~fMy|$;+)vs1 z>DlQ$Q6zXiuywa7(TT^-*ZqKuirODg@t1Vjz^!_!lRtGcq{t&f7~Rh|q-T7MIuNh1 zM)c-He~h~8$BHWGbkI&c^UG;A!Tj5U*Je*Dj%I{wD#maaQ2^*7Med&7drrU~_{I4)F)sq%bZUktqssuZZzM6LK;I1*`J!=xJDeSc_#i9zn2O zH`@RSCQX@Y1x4(1O0TeAS}_w(f7|jHDp=8|&YFD?H*WG*y}l<7yXMoz^!d2CTGCuU6&6w0O#ctgANjKQs^hJ*rPqQfZOSTXq&8iou~a zh2J$=l*4SJbI`soVj6p!X4JQkTGVY&H=xf|3<(hMfQa(Y1lT#trI@{7I_vyu@F(uU z-$SLoQDPt=!t3YtY|cv2ye(bSs!S7fo$gYZoa7J}R3xRf$)Wa5YjY-V-%iGqby((6 zomF~MK+t{T5qK6L9yZCUhO`CB*2&Ri(*4f6oVHlX?bN9=)O^GVA62{U_LkY{J8y31 zG6JQMSr05|;}a6p814j*Y}fDUHU9TS7m=q>u8N;>FHTrds>RaxIAXHxAzikMiozH8 z=LNXV+tTj%7)dH;9}_$3pWto(iu3h(d%obUz-XN?^%fb`a1}98zJP!2pIt zpoYR{d_nB}$cQ5B8s-=z!NB6~YOt=w#5_(NswQ{FNl&~}XiU0e@0*a&9o3wnVjcDs zh0=nkM|MDvgJ%FF)Zeu|a(|A9*!uXLQe9YEIM|g-UGymaSGZkqc{%d8?WG@mr6JMg zNvDLh7t8SZPk(NkCk$=Q?0~Ul z)bL5exQ3CH^igOcN2kIox!tL$E`CEuyh9D5JnOY`^`I4dwxp3bdBQDr7T^VU zHi%v2`@A+X?7j80m81T-650ck5jPe!HmrbByCm{y5gie+2{dEG{O!t-J0eoJhQs2M#)Yz2>6W(^Kz4 zXSgd+e_^ntcz_T+m9f`fDQ^H}W5&vlRz10M@;#$x72OeyaOqZ0Yw{<%6aWc-q^!Lh zEWSD1M&|o``+AmmUy1XYq?MU*lMdd{=j}qfy1oWNtAIVDhL;MVx*53iH0u@>^afAT3OJ|^3EJ*ICKWGe8jn!Fz)G9Z$1d6z3ly(WC567{CvtVt$H zBEw_UpHeHOta>0kmisp`krZRo3=$S5b{dNH{0dRyPu$Vv_N28}EznkDS_eHkw|0W& zI`x?VhT3t>9)s?{0pUJ;pU;I_ugd6jgy{K_Wrr-MqVwXtB{I>(|x3ax%TJsK4UcZ)<# zI<|X=aV3QV|Eky8VOFX4>}) z0*5Nr#q-6>p;0Wyp-jKQhrox_KzmzUErQ2`k>TS^i`PsnnPd-lVp8Z4V*$Gps>y<4 z`G46EY*|fBDLazkNR|n}F6(`&>tW_)jCk3Qzg<>I2QC1wd-y)9S=4}E4|hzbr-OEn z=J0%WU~X}=+K)#e2?^(RtU*CgA$J*Gspk(*So!wH*X8K>!cde^b5p2 z3jPi8300<8k&|gp=cs^%q|U5qlHj>=x8h3aa4YaL1OiMV=IeH(Nb%_#E4$-DZN$AtNm>CNb+ZYU^ z56)s#Qb5qIUtK`FP1N~^L#FMQ89Dhmw0U0?J3{T-w7`aHw3HI8*m4Jupi zE-gK^o?)6pQVwb(YF=*5Y>I4S%U9a4l8T{Sv&*Vk3Pk&a_*6c<=*@*63Kogf!|19S z|4s*R&P-w3Jsw2+Q~7U2Kqwa?LyW2w^KJdzNA%L&B*O(YbqfZ8h83+p3na|3OA`S8 z)!(Bw)E%e__ma4P)j7G);`y8%fW^`;nuGQjlvEHDNFbp%VpFH+Cw_`3=g0%wyPR*y z0(z4!*?C=82!jXm^T)H9?^^}Q2u@@*BA6;fJuMVyZ$rVCmhzG)#xgei&Mzp#Qy_=vTt7~Cy=*2Pgvr2Xm@^Xx~pT=5pJ~m2KEtmor zb{HRMIQ5KjY=!poMl;Wv> zr~CJRS}rp;MIcnD>qQEE1kqH*8asBvR}>?o<%YnQZ0Xjw>onDnS^2HuEDUj#5z#l` zvhd$^7xUCF%MW)ooj%fUP6w2@Io|}Qq12!a+lz9QGf=}JQcY`&*QNP_TLnh`7%1tG zFWoHwobQ_`(aEc28C8AXB2#sYWkKYrEoQwn zuzJhWcxkD_J<;sdSl-GBX?Lh0Xm25XQ%3SYEhr?D+X*iF<3o({dl!fj#q zTdf+x%@&mDSJB|f>eCTWPAAQk$c#5QXuvch-Pkv~D!9c*=2q$Qs@y;pc}c3K>C{7f z0$ZQ{-f@Z*i6U8KRkrw?Z+(bmg5}BBjg*ESv>o@oOZ<(ZE@3?cpe^1?hYtCzILFNM zSOBHia^LFNr0a$8j|n_iL`?Yqd3-H%e>H;TS_of1)Ehq^vd+R1gI))JfP?nO{sw%5 zB2olp3=}>QXNsM9;)`FbebFN4nbFTd_*9$3&Jv&so;cBi+;OId>@Z?wIt$V>M(6@m$rY!nD8E((Hpo>w{DcOv3yzE z@XKIECT=0IpL6zZFm%yH;%eTKf9}YxXX#Hm9rqCRS8oy)zJ83(IBZfXI|SRmO*PJ4f4wh%;(ErldJmQSlum6GF5?BKsByk& z0(QPP0#4?+3z0E-e`cgW*9Y~2oGsA&EU3e{4nh`L`xE<*Q9&`-n0kadv|@Tc4t1nx zl+lU$Qv-p)M}Nmz=Igz@q^QzybDC{KD=P)J$TALzYEB+5@1+Rh>&JXBAN?D0{mxEA zrUMF6OKWpni`tDOckU=mq$w@{%G0>cSli-3$O`q)`4bngitbyGXo$<%J->Pq<-Pxw zFP6zp-PVdtL2gtX;h&xcW1;m>46l9;$CUM9hFcUA;Sdn{wN&gP z15x{tE5QVm&;m0Hjj9D5Uch9NYhb;4OnPu_cN7#44zi~F%Wy)rdLD4%8F=LAy+2z6 z^Y}7y?VCv<>Z=b4IwhgMi3d~M|K_gp?Ro`33x#;ZX3ODKhu4rPJl}vTGvhz}zRy8V z@`UXIuQ7wyGd4_Ac{3VAv3wfwJ-v7?&_pVg(_opWtlN6Cqn$bdB zTWG3fTfa7=d?qsgnSD_MRpZ{6a%P@gg8KRJNLf1<$%Zw@=uS_bZG{sppTEhTb`gjf z@fu=8R6RqX^0Oi}nn?262)e7~OhC&>UZk2a2UEGnO{@_9^Cf@1E(l-ya`t&0!Gv=c zfrReYZpyUCy+~oe3(JPVlpZE$EcKo#`FTIr(>1Eq{hl4cXsMi|R%n{x}>E{(%xwsTylA6-lS(-&&8=8#rKW49S+}MY& z97o-fW5O5XO-y*G6$(zcb}6ROu51Ai00bjVjCJHKSMm8v<<7J5svV#1$~U2_c&gR$ zi<=_)Cj!Ev6Lwl|JlY{{j-RzTai?=`0}XR-y0+I{BD51GM5%t5hDt3}*Zq5>{L@N} z(8pZ*8>z67l=|hFf9kUBl4$yK_3UunkqK8M1Z=b?F6Na0DTK_sM9{9FcX;{LrxIB2 z^QI*cI-Px-VHYCxBnw;h-N|!@BY>yoE9Dz$VNL&@n4v4;X5#8`e$b2D!;R}!DS;XC zd#}_-?sZe*Z`4La)U{*z!PXYFva)j3%C81{b>S_HtA}g-Dkz5Dw9d8fweG9!$hA;! zkihZXQ}%@KGjm18O*0r#pmY$=w~H2~>*euv6U`iiBlgq_JWJ%7eFMKvZajvrRYEaZ zseqkxPkbKc*8z6%MDuR>tDJcv<5O{NDqDxr*Y;0vN`?I|qitoz%~_aZ;{m0H)MkK$ ztVK@t?$wYYJ~7&bYT7y`Ap%OYTxHg;_iQSYt~Rw1wdl#II5H9k)O28!&oZ0BODdJ~ zCtYyWIL~X3yX!PG+B}#dAh{jBqS8J~LElv7BfCFn!~U$vi(f}j6<4H{<@{ksbYibp zsQ%}Fpx!q}*y@G)TbI*$Tl2<&5z~Rk`fO8^IGNNTEA2&HYfXj|NUWos%q3h#5@lo& zrqVXTIb}k|X}WsZ0!y1?Z;?_tI(`?;IwtS?xEPP}%6%q9x;rkiegKt{Py>yb8Y$=J zE=}vclbTGiIrTtc1JDJHBui#zcg)%m$WK#^u|%98kt9nT@NLc1(J_H#B1(DJL9uxC z*!y&>Yd|PcQRz1cD_dTVOpaBq+n}K`>4=QxtVGTHSXP0txo;bC*+>11c>c;Rm3uzr#TTKCXlVW#tt^-H_h{<)jPv}1N< zaWgg=SV?}W!sC>-90lqZQ&Sv4KZqGM-;IY~s`4g(lt&Cl`e8NGjzbQ6L(7FQj(aV~ zO&R|PL{$s_7Cwz)a34r4TGoYfPDpK~1cv2+y__hV=_FAkLU096>-(`v*+5Wf%DIs0 z1@j_pro#b1f=xlvKi=QTrPwR0C@lVLT+)L*YXgm@jt9LbDazlY?K(sjMrEV%9=aMr z{SUhb6uqqO(w3pz5BKMg91R%Mx4E#e+8We z*2HWTY+yhW1JAnffi~~ErlT1p)@!5l^nK&)vTWjoU=w@C=(5#_pPC&cPGsq{OgW}} z8PUq0$_;~i?uMDVUmrJyurhS>4-8->AJ8&~E}aYNc=!`}3tncW{cry0zihVITzF?G zkyNwQtPfc3cKG1GQMJHPJu#%ltm4vKFQqjom1~>{;lH7KTFRwwmESK)E%{*$mVT3A z%4RZpF1i=6$X_`g#q!QU#K6bM5EP?qUi{Wx)YppH{ULG&!M#IKrie$wRPn=kHAat9Z^JYypAfZ#1efiNvTx@2vf=;;k$> z+}Tl~tBPO&HcmDYf8%F;F^3JMT4ly#rdWC|iH{FSU=2^EV=$*2h`O^>t1+#FOJ-&? zvyTz?t^dJ1!QD{M8U8vUubwT`#s{&9kXe4lU89?>!e)AFP-&YFP6xsD6lwi$9^G|D z11}O*5=evfdb_J)(KBlt>GYwPVq5%qmV!e}NU31IiI{hsE;KoWMU_+OuRq4)tUk3< zMHb`Vxj(u@WXId1(WwggA>*SLupsfnzgI8|V_(5Xzd!qS0gr%OU<~QGcNX8sY4ji2 zT%4dh;?FP&8N>IPe#Uv@f4%#U`RbuVJ>!1(4^e5dh-bs#BTz=)1g3c0(Gq<|w!41# z9l3$tdm#Us(U#bW^Oe2e$6LyQN!T@o7~gP^&)6|hm)I3-dQJ~)UZ-t(L(rW{(b>UR zaTV0v`s*I!iSRAOtDOwK=F5RDW8*FGP6=q|{~8@S-JjH7?-=f`gRUW!NO%7VA2)#T z@q=pMU#p;q+t-_(?Olu~p3t5fXq9ik3jz6;&2uMveF#Rt6HKBQ3YYP1_EXo(S?Q>i}(|AE;*dsibiTiVj>|eNe(rfR8W%tBnkSGro z1nWx0ngQ5ns@$7*Bom76BPGGX!3&Is%>nd$hC1bs`cw$|8GvUO)uApW-K}@BG51>N zD-==fuId~o61W`=R>~F#Hu?jLB>eJHkHGt=R`X>ieJ|ngx?Wub@#|H_?MnyboW1As z%EgVB@P9|*X3rhTd+{5K!$EDa^WA_lXzVNS$2fi7JC$(uKiu$-X<$03X$B-S&o1=p zdDwJbVTC#R(Y>dOXxIAg`Nmy7aJvsCv0ZG(IVvY^(_OLrfq;fM-RWBJPc8wEQ}Sb2 zBVo_w=S?U6WnkGEAa#0q!|N!pEx<&A98**n+-Hi+!gM5BMVw18*HaNC%a!x;Kkxhs zXR1C`OKTzbu#}3pf=i^dj&C7*aNk738Cd0AZMnv&o4}&}no_!+f-0H7;3X*MeZVso zHe{#B##^bYM-<9t()De@cI{-~bZkKf5Bl=?V|o%cCOVVk-Pfyxln>gUhNBwN6q3bc zM@^-ONWCfeqHfoX9H==8(|ryXP+9af>Zz9EQgD}ex@eS)j(8kZAKFowON?-#B|SZb zeSfLkag+Tb5BLuBIgjKVhwFsXK!o3{`AB|Esiu0(Eg%oZJ8yb#2#z>l@qU~O+{ltpDrHgW8LeZ8m6xo#kd_=`}wZz!t(Kx)d4gZvFn_ zk?{dReSo$bupK2n1B0$xn)OsPIs{Jw&w#2Oh9%HQ@rQU|VU$4GyI*TQ1YIcudcM<+ zf$wu@;_IV_Z@}I8{?E@43cn{O0G;*$TnyZ_$ZIR0g~I$36t91*fM9q7JawqL0%$EGPNw?TQt1{2Ej6S z-J86q_uHF$7i*hPsR+r*CGEPFWfTyin+irfzK^F3jL*rF$SUzyfV{t0aCv{T=Q%<9 z(J9pU>wXtKJ58Vv=i&p6Zv_LzOfF_jgkzPObQd<6JS9^mAu&mrQO%dP9^6mpi1^rfzr;wB{!DQ$prM46J!GJco5_?uPAjKD_3enb)1&v&dBM$? zD1neL0c}^H&qg|cLSSnSaW(w|dT-dpBug^Q2R z#s6{Z0|AT(Uy=nu&U(3Rgj{CO33cs!-yq@6+9Gf{e)U*x$swY4zMBNAr>;(8$>S$D zbPy@{?Q})=$Tu zvJww*TUli}1b?FI1lk}PJmu1|YM`qtyWTAqb(_fuVITx{8^aMG9Gl5L#dV>9x5lKy z=TUmb$Dql%9x@kf#E_S5dwEgjlcQ6jqOxw=@41w|3bd^AVE{pj$x@RYJm%?xaXTb+%nHs&=Osu-c7|uhUFFOsY2+i?oH}Euta|oY2+^*8 zW0%s;aW3ztNe{1?S)2d`+KHr)nbA#u*4^+ii*DZLU-#{0!NcjMDP3QdAkweJW=nEP z-JNl6ZI#0sm_SNPyy1t23zZak)F3qeBZF2Y;zC{CYk#j^K7)fH=)b~oZcm>aoWgz zkLjb%(FDH2H0>Agal}98}rLFB#y9Ku$x2|sIQ-ZKFe@0)> zV~~+=%2RY@daZGflRUb1ad2eEMq@eQy3e%D}$Muz~3O0PBVVt4%8 z>EaDxl;zClF*6A)z+q6MTB)D*2X~t>v)i{%O5*imKC*9}Fr*@ZF z1Lk_<^5;M5@D+p2xv!s~$ z7j>CZ(soDjtwvPnBFW}Q?N{vieCg!|6A$`m%oRO#7v5}O^U1~3keO|PqW}Ii0c;4@ zyF&{K_m0GV?2F3^HM}-C4NXk|V39H7DDp-W*cX+$UQYUI9A4C@uK8=BEuq4nAsEjS z5THTU_u21d()cowJm5eAvH{-(erR^myntOlz^#l1gL_T_YlkG`@5oo4hX2IoWjmRE zl5!@eVOcL%uuyn@QBVGf;!itj^q#9)W>PS&b~AtP=?EKA(DU^ZbHCv9tO2C7jj0sV z-F15Co}LWbTzgn3k<-?X^qiV{@@=1CgmMZ$8OhF$0&;TMci|$rmJcXIxCROrI{Ebt zTWc5_1AZGkNV6@auq^*8DKhQwXsTwoj7LC$8yA?Qff{gP@^i^ee>v-NJT}abqryJ5+=_B zdh4ra&PnqPb2AIKu8K@LNZ?cwC1OPGAIX6+-r>4mo?EW(i!`IHi63l6E@hX@ws|*w zw3DPm+*50^?QQLJEF{k~uq}a)F6S71U6OR_DA> ze1-)Qm4;G{(4jOE5}iW+{?TuEUflLM^&H_Qjg`6T^zRh=@HQ2bU+DIVQ*l;#F=+s6 z>wTaxeQ?6rod7js^aLovbjWMXE04l=Tfhm1Xk&O_A3ZyIvBrS&a+0flwsdYHM-#e= zD2nb5Di;!y^D!kXBoxZ8{{D_wL?#$(q4=Y#3KFvgQ_QIY^qXB+7)YFb`j?BPOM%M! zYE+r_Fl0p3;+3%lrFjJ=00dYL0*H(F|MFJSRFBv=A~2&$kWNM8<=)yIcQX=s7eO)h z@ z`1!X#<#f%3_Ujh0OZ6OSRA;F9|epq#Zcr~_~OsivB8CO&X94-Sk9=XIz4Ibj9ID68UO93yFwGBz#SXi>r5K z-97Cw^6MYvR;BE4xzLASbWP2q6bh|&b%}v+-Lsu*@;x45)F%)SIT`h!tc=_GSWHNL zatSpVGC9!_CS8Xp?-m*{US^g}lfE^d3$CXuQ+PYhNsr-RbIF!8Qrg7sCkEf!=SjIi zNb|-pu1&N}&bmha{afEgzKCMA6AwhR&UZvo|r%jqK ztPuarF5LqU&11lW_j*9l6UzU*!cHZ2-nJ5OC)$S9^>X=o6|`6QysG{gxZ^zq-yUay z3m?Nz!3(fcvFf{5wd2>`1j8|4hjQtvgbiIE*6 z1E=N^`vnFE(jL~jxHX%Oe!Iy@A-{ul{0aiswiI@JzI^bvif-L-V{+6=DWLk+ z$4iL!=>(ESc-*9q9`nRU5yajUH3n}^UlgDgB4I(9l4Yqtr8ee}-hGbP$}Fa07Fh7G z%5vYj@>qV8BqAM8{ ztJWp5z1O<=UmO`In*~8cLfNuoQMMLe)kZ)I$i?#RrwgFf#h0$1eKW&up9M&LRp50? z5NZWt()oY$COB2yewsdwgeCgxCmw|5i*^4-DLqqQ2?)T$&&YHhr%d@+__&qneZI=_ zMM5ITxJ+P=<(rT|Cv0T!m~#4ZAzW&o)WGh)w#`^$af@MZ#~)*(M_d@`6W_li^I`r& z+J_e!{7o~2OSU|LCig!8tU*)0M@mFxL*^ZkkXx>0YQu}PlEYNZAdmKSc(lAgq9bOV z!}un-s&4J~3r~h1558zF>pXamupU_qIJXtOT*9jksq7G>L)GSawC^NIu4u<2L<^S~ z8yUg74puBOG1SlfcLl2FQXpZs7t!xVJs16lF4uMKE(+OF3~H3hp$aEUCuz^m)0mr~ zv9L(iXrg_YlX{A#Y4Ew`09oH%j6{ao!geC$(WFbt8_P8Pf2K+%_b&J@M#C>Jk=z|wK{|>#rx|ANo4Z+5x|kSzTNI+ zpL#hRuJ!#pU9UehQRRi{I?JKMJ0`{ec$9W`uj=*o2j0S= zPkv)p>Gk1{ev!qGyoVqEgU|9O<3GT1dx`ka#OmkF&}F?2FxqMJ(ue;mMjzi|js6|x zM)dlBeBwD8^YfUwv2}X=58nS%01W!Zj_CD~-*^fi3cdat->mb9Iv6-^hK|&$di}AJ z2`|id4)pp>>h)U^8gR2U@p;;iGDNxv z5(+5{{ZWLHflTFuG$&Sya*|+O2UNg^KoUiSwD(Hn+PbvB6;3@VB|ghIGBUuCkv>Wh zh89!)AC6&j~vI@#|3 zeZ8(hyU`&yC{?PAA3DO36DOHCaTh}qN9Y?H$Hft)IANlHkbbSm@-|LGltjeaF#Kt$ z>2x~S+|g)doSmGb~)#u)0&29uMM)S4}n zjba7C08576kE2Wys z>%gjBe|B<#SI^fWI&i|@3|+ncSEp+0^!k5$O!1w+{dvYe{?%>Q z>i|A0GO>T@>$Cj%nf#8@>$AW3*s5L!sI>!6cUJUz?Go*fVSNKcWmT^OI2AMW%b&fC zN4`0>s@H$!{r?-E_`m-YfPSr*{>67}yI!CFXOCT>*AKXH*6Q^yPc0tk^)0aDj`-bP zQ?4x())ze$b#UZ((imR2FwM&s7PtKv_8X<#;ADxfy?&01smBLJS!nPXZJ8pSz<3z! zE8%VW=E1kWlQ+KotvvF`TX@f-Z|9+-M~QSG6Bz+VUf;UYNQXlBOR4EN!HZ|7 znD1Dui3l2S9<}0lx8C8Ez=g{-(RxiRxBA*DTiyRgNBqW#x{M57NLJR+!3&hv7z{GM z_5^8lTS}5UPh2W9e)tfT{(e&H$a05}di6JS>(FidSLtY_8MPnsz%ynHXhaPM^QTrRllbd~Ca)Br-G_4Njds&*bzR=$L?{op#Vh z;yp-f8H@~lS`%DGYKw?^wGEES)EP=XQ z3)b+hsWwyXK-{0up;+JTGZ9JLM=OO3OM=B#?<}XifKPLLun4V)D^>c&Mi@GFoRRzP zW)FAWa0Ft>?6K)1E^JG}DYTmnK=LwTMdzHrxNr zg15@LeiGtxYI?WcdryKyC`GAKW@u!XQl$?UAh))-#yzkBq*izYne&(=VPJ5Wa;b_t zSV*}hyIrq8cdmU^y?(%r^S=B0ud3JKO1(bw^N($dULSw_8DcCy`Dd@*k$N3i)$79_ z`vQOUPk-FW)hG{j*h)V*EU(vU`%bNFUTZ(j#DoB@l_FihYR#O5XV1;Bm>*d9 zUg%UHqkhh3if1p*QOg1<2(0Un2}?;CY`e+CP(O+kM2__tS!${18#63x(sL5U`&iI4RC(0!KGRUl_Vf?Vj+mN0zA3Pus+8HOYZYtS(f{TYo(f9 zcFKDo6iH#;BT+=s6pI{O-zEek&KE1~mA(OnN5)WbMCL3~8FXZjS{0G^!DGF{1z)5< zOMxd~OpJ4ZR@$M`S7mr~9A%;#66{wy#@lV&?_?sQad}!qwGz-Krq;@M>D5y#)DOx^ z^g<~`@Pe7S170jz_HjyTp|p(1k9W&=w=D77sS!|is?J%eQ)J`^#Y z1dLQTp-7!4$lIM@zVoE5c}&PDD}l>Brx#K_{p|}pJ)4u73VCe_6Pi%+%ywFQN^rPN7wFn;tRTZwx0-ecD^58iAoSfMn|7ytGR3^6=9MpCX| zy{FmQ#Q7JBcA8Ufv_MFPN5&W&9$m5Pdw-$oR!=JzQ|Fiez zQMP4wecxvfXS!3(;~VOYJ$DO9-LixRjD`S~!G_olS+R-jki-}#u?z?V#11S=7Ly4C zLxSzZiv>7j0hY0a)RNHHfIxH8E%o%~`PE!?hcoOUf1Il7dQ;ukeXHK9_ul=kbyw9L z&ffdnd(Phb`y0N$Yx(-v2fnl|eEsr!zlrI3#BYDsQU2S*;XTLKfh+j>-v8~%EBSiT zz&m@-^YxD(b34M<$KU_-HGKW=KG?VOy&7ycU;pJ_{#W-bU%#cMpqn}Io#=C`etjUy zf=`)2>4+?@^4xrjXU<*527^03zB?V>8JvpAlL7wx#j{*mO|fh88_qeTR*0hD;N%EZ zSzwD5bWldd1fqK?S~pZhhXTnxQQ(}z2@pbp zP#6zs;b>;Vcq?Ue{UcLh^(Vr3!%#a9*I}gz@P; z42_IXcuJ$)roOb+D5W<3N-0TmLv9SlS>j5Cz58Yu93CP!2B~{D_}%P+-^cbM4#H9@ zCC|}8gmr>rr_XZi^m)>5I;4Fdyd#VwG7IM}%yD6U5uqdEN)2OjOaTK?!oiVY1~p`9 z6R8zC47MdAJ~oEe&P;GSa&VneL!yT^^c#qxFugd^S;NorOyYZ%OC6`#}@B7zCQK-PZ1f&f8tHo=j+Rs zi$XD=6*Cfk@3T+yM?d)XK40HKzW&3X>`PF;8ua=4_TiR@ZN6I1!}^c1qhp~!0ZPV* zu*STBFC0J3xs?toxeFqTb{JL`I43cp!m*3zdGYchdj=+`>MDUrDZE1~!J+X{rU$C5 zEai|WaGJsiUdf(#bE+$A*Tuo%h==!$FrdLUb24pEVS+QJjEw4HbLoDQ?QYT~2+%5^ zrlIfx9aTBI+To+mp5^JeCLbvliK-3e+Xa_b4YR4m*TxubjIfgC?DjB(tD~u}{=Ljv z@eIGF!!DgfD2bN3drLjv19z)j22%-k4gih+2 zo=6yvB&XU177t1wltAjTkfFC0V{>-e7uxOm-f0kbMI#9a)LNlL zEhxMt7l!LCQJcqX5ojf`&Y@+%*u*65<_fJ=i>#B<>NGdB<<^}7o|hd04v%x5q*`b1 z%nbVv9w3e@v^pt`!2wLWy9~kAnwVF=w*LC{Ki9SSK3)ZcEOiF0wFGgM`IS|^@#1mj zmzxBY#_b;7u7`7uFbr|db9rf%6K5|nIWop@Eh2BN;JhRfg8hRH_6`nkrnOA2B;I+n z6zgR%UNw%6Bs?@d%t)eWciO}vCQ^!y?~qwh7KFWv5owE*8e<@moU;@BL| zojS+V$T)j|}HaAbr%S%xbdbF-I#e9PlKg1Ay4)&Ub!(~M0_5ylC*bs*#} z-__q<+(~@>i90t)c-NpM;LAvzlk^e>!02}iX;jMlt3DX zOEYXIg~H>Nq-j$svEs<+C}T1}I?Jlx1`oS36sCg?1eqy7N}MqaS2T|u*h4j`pw?2c zy@1>q9OWeMjlJS}-ib%A*slJsF4XFr!#T&Ep#hHUonm@)kSGv%SoaTr2@PZoWFFL<0np)1u)g!uQA>$%KOEE)O2#gnG2V>JU_oyz_LIH zg->%vt1(CRO))k)i1m(k+98y^$9KH-zGu2oGSSBG)x? zQAJqCKq5eTE~J7lU(EQz`HW8d>$g9^qtT(}*E`0^SniUKbrJ_xZ&GdMKDeMb)U-2UB; zD2kYxnqqQtk{}2+Bx%;2qur2OgFu3kcqCC=VRCAk{Ra=QXYc;5#}~#iF|~&WA9$F3 z`(~)s8%P!4y}G8GufvBRl)xFm;LsQ^ zp1;7^`9-qA6S)Wih4&ui;J*EPnHU}*>$ET)gziq*x6+mtLU4F`l%XWRrX8Xv!7GLJ z0x3MP+TGsq?SLO>(DDwaJVN@l;-E2cJd92zxDXDrRGT0j+)GO}Xxb2=;1rvh<42Lm+)|hQbG56l$y`ff*an1k|Z#?w~ z9zHa~aASZt2oXYHttCy~Y>~j9*`95AWN#>~tN zjiEvEJTGl+u*4Q~`~~Ad?eQOzqv%{rI9_Vq%JeM-DSGI*QgI zLZ~&;-sg2Ui`~xG`{*6t|L`zb;d#T++70FN%>TrjHu(A#pH&SO|JOIu{E0WQ`lD~SXZbonpf$yh^e&CG&evCd z>@C;u^*(MMJH^-k$$Q?jC13xa{=p9b@ZI13U))uEUE40>={8`$X3O`ieQwRR@1t7+h>Q-*QMf!Dn7-vvV5GyQO@@Wxv8f3jJ#>HvYe2RP z0d$HSO$ck*OR4N$NT}QW7?>8hm9!d)aj9swQ!Z61L`6YEq;%Bnt@K`LmLhbFa0c&SgW8Er|KkvGf=zQ8(i8cdDAGK7aE#}lJ;riwaKwPSVwQ1IXa}mn^dj8J%{45`szyiUMJCKJ{m7 zQ4YeD+LyRZ$(0V%qcc!yjmZq5j%ckkNosYz^R+L2kxC>9rN^2w zX5{37Iys$LWlt*9x1cx7akg$^QcMjK(5~NwiwiQZ5*Z^wQQviZ> zNuo`SZh9hfvsTbA00PniG6TfJOdcL)aC|SVR*U83WmZ>LF~$&vA(cvnIF6a#w|^rQ z&dV}o-L6IJd+!NUH)r9Eohdi7*jsICvz>+R)RocB$&-vzxM z9|S|JuH?kED$kub$49^XJeLa1*ib;xItzNNr}po5*tkO8?hv{R23 zqr)TAL{7a?!TMERH>??YaE!6$Jb%1kX*Lb@T7+{B>wOvh;zb!*ECm8dEn8u!@Z@oo zs5XFf9V+P@50AyX_Rt>o>K154CvO97;s{zq&~yyn#FW_W`Uzx%w0)kiQKgU}GHIa9 zCGt)SnT*j*`eLV%#0^O20r1s2=axLRumSBB9$1tyK@|c#kdmPxymKN73*8{n5k5EM zNzQV*!r;IJMGh;{Qq4EdyLRpIa$0&O9EnxvPD+~P92y$q+aHWr_~Lm^r#0$%2Q(Nh z@w$wvmS}>t$Ew-7;HOG+3e%w$Nel(fD=xQlR+^4C9GoKfoA2V}$&<{@&5`FhMNtrj zrNez?Wrbr;KeHp>+d76C5qVzV9L&xw5f2XWj(2}2=a-hqyeCXs{PAZ#O)ZRwgrHW5 z>Es<8mR6S1h^H{Yt+6W=6N{uaBF<$!2-IR&&Rj?$5-p&3yZB ze1-omc=Q^+{>}$RdGf`jSIpOc><>;;d$vXLGoK-GH|Fb$Km7WxzwbI<2dH~TXqWgu zzvm5nKwL~2zQV)Kq7%Qn(jl~NR5l0*riDzMEZD)}mh zCWd(3fpK0lGXVMW4xgYRTr2!%@)SgfQUY(mcfINR=oLXAFgB;K1{DT)=S$KcWvRX1 z1?!R5LMe)(K!|{`(LqKUH7>2Tu_P!V@j`%G+Y&ejLZF1}I&V3ph~tPnH{dOUwJL*+ z2HH#7?Tk0?nP7FOjyLU#mB+HLF)B7!^6WEQ=Z%A0x)K+yBlfP_i<-J2!W15mRcXS#;~}&#Nx^_XnE`4)3Q$ z$eG2I^QlBijlv^^M|y|124~A+U9Cz5uRVbTIVI# z!_^8G77bJ?Yil?dzwWFrrQmKh4>+vUa5!AnX0#ErZ#W^*j%K^f14j=qJ~CQHWI0Ds z6dOk1PN%~^{I|cj4d2p@@lvO>Ue#+uNF8zH^-u7&`wrog3PH8XzyGxl(mDP$j9V-A z8-?U1!zoW;bC!zU_O4Md!0Pf6T6yA10y<#yjZg5Vhwo?qp`#Q#EPGh5*NLKtN~N;# z8?3ME`X(}M?`7Oge4V}_ep_&9ahX3oALAAbpL}5+QH_b5=!vfneBcv=`6>?$4DsRb zdkw#P1_pN6zx|n)E)fz@6a|m`i%)XeHc+a8x3KqvPXYbV=bgmF&pySa?|TcseImVv zuYc^NRk~63UikX(&wUATlYD*T=f4W=lCJ}3FZt{Xr+M3b`}q$i4aN%o=Hb%W`X7%K z8+`o-|Es^Y-qMcp^(acvI^>%ke}aGXo*%k`um91LPa<53!g1lb&og=S^&kT-KL2_4 z9(tmu{?8u&0)zKI&eHQ=Wc-o0a`~ChZM^r?0)#Ey=j%Iwo_8#}T~n?btTXs%h*Ps2 zzIt+&r3``~#CB5RK+s!hhG=;h~u+9zQtEgA)S`V#vFC z(0eQHQlOAgfK79xFeqse+G7hS?hv-Vl?U&3<7yr8tKZYoBb>#U932N_c~KSuR37hb z*Iz)cFB(!{a)Zz?H8RZ1=pbjC%XGX#Ado_Wa(L_T&Y-bKDJi<_95Nw@@Dyo>$fQh; zOffMuLZBR2O|-g*v<@#6N(Xr7&^RPHZQo=dn_W9u$GYE7ZgQLUy0F(mMPUj|R!U6h z<}~9;j;bhfne*sG!k6+{iuMZ18>Cn(h=K+wsQBKlm74YCe#r@}2i;1j&z<6+>=32% ztmt@SQQf?_zI-k8)_HJ$#=udQP@-6ws#GI;3`LCA$O7dUb1 z6y7>Q9bodDN)(fCgWTlZ4CfqC7$Tj;34y^gx46K$ix-$VcmOQ~W-U@n2}fOd9+?>@ zNfN$(;w5DG)kDN=e6q$y)@b#Y9!|=>7p-yLXJoCP$eJB`Z6;@iG`9 zr4Y^&WARxFyhZ8&=S&&t*T;^bFfD{m@K~&OfWQ@o5KZFgy6=|GW7ndkbQoZ94Av^_ z8LM+@`7-UGh7uCtJhD(YQ{cS81m@*v;4R>=h_FW9>7bqE&`8V!;|Wz+&}ydGMZIBs zmr{~t8DSU_MWvx9YA*EtC2fI7Y4W^)RfCfuVYbXrU{Nus$S_?|#GM69yF=dTfR<%i zzLH4k35a{@UxbFL%TPFEr-N6DAYEp%CK*r}bK7*DH$tA57QHBnh@$9sw=6b$C-L=v`<&yjiot3=cWjY?yyWYj zK2h@ZVH|J0e*mcSj_mk&+O_drsvr- zMP8)XbcK4XI506xBb11uAe1qAU~xE%vsmwOuAEVX$Z2IOFAE@eiCBx%6-d@os9HVF z&_R(SRDh5Qk06zbwpO463gH=@-h)w!LTRMbNL6at3t2|6FXycu`!BCC9Rvsq)=SdD z5Lc=g&lN_I>s2Z5wM=CVkK0J`ozywZ4Y z8Hp5^I~iU}&>Ck;!*Cxv2-hJB1>g`$qIC!s1P19`*QoVSX>#iz4DnJ>6m1%b=J3Q2 zXD==CVc z4yhD2?agA)%G*RyKomzH9L7VlXyXFGQhNnRw&z4|fHY0Z`Ty~UkCUvfBOr3x47?);Oig$yN>|ynd4jY^-sTWmZiB_^6y7C*0XHOjG(9FRb^7a4gH+~QE{#(!2A3nO5=g%$n`T7oFTMhBIY7y_&$Bo9Z*?Y4w zsYMmew;W$Qd5Mb|=th+y&j|#WJ{ju@=NwuJq;p7Xky2w+#KlgVubrLc4Ttt1TudMw zi3aO)I%!H(hBRt1fBlIAEVNV3EiZF=agK$R7J0isS%vn3+SD);Lse$R8jM#Jk<0L% z7KImtQ3dO^PGRqM4R*VMtx(vaAVjifY={?^=4hvFR9L}!x9ckeY+k&t_FnFWg?%G> z$$P|F5iRc>P>wCMIn%>~L{gQhO6wV_wm@r7w<*k8iwZQ$?G}xs3f>{|Hb=(l%ubJR zdU=_m0Bb{tDhRF0#oWF;zO4`l@M(*>_S`o$#C?+^M9z}uZDOq`oM0_q1g&DE48U9R zPQm5*6)JvR_ixR^zUF2x|2T~AQ6t`@D4}se5d{&U)u>ET_yVCcLtzcKnh{tCv_Kk< zG7h952tC60mdcqX4xGmdiE*C1$T>4VPs@2SXK+^)aorrvwjJw75Cqqq|JNUmm*2bA zyWhv1iriV|7UnsA{u1-cO{xO}XeE(e;JjqBGG!mvLJ5hrwp{zdfH;Y;u3&a~k>^hw z=>*0tN-{K+9X>xV99EPyA@&SbIp6BAiUgt7Cg1)Xu#;#6j=@Supg^gB zFcR3zv5nlrYzKzTSJj`h{7r}BNZN+8ssltS^yNrTQng;mNH9DW|VHa zE{1p*szbDMk1IeBlxwUIW#Ej|_+BH|yay|>oq{}1NsZ^s`B_w0#pw#< zJInnlm2!sYN4~#$+^Ky1@w=lI^{zxGfOj28`0R_XjIV#suYaE3{~zASsekf1-uJoL z>+F(g` z4@~ao_^H!8xc`A&#n+!cvp{D0e0`^ITQ%Z$Vq)pGsBiAqdrzTiJbQYc=jWT`K|&}M zBF_;TQtJ`BedfN+5K5v2*usPJ6oo~okhV{FX|BbI#ST-|q)bOIQiOIOJ)s0?4dY2b zT?s}iHI9xa7(jZ7_6p&lQy2yt6>5>fW@$-&5O^u*n7o?^z0uUWcc(V zE2}wDSCBg9b{BQK8Emz%-)@xm;miL6S3IApRoOQ(M64t}U-PI7fy5*H)uo@Vg~`hW z%vfI*3v?E34O8_xkL?@hYZqE9taeyTbMgX|s34?7__DlMxA{q?9YULPWW2%a4o-1! zEF#X*G6GLYf$G#1`#ADTi>TzD)!8#x zCs-p?LIpTsu>!2HbfYGLkO(A&^>}4*-VnHy(WJt|dq+7s-(sa>SWXLa4_YTkCD6`d z%}wOF3PGX`_YEezX732&)d*t>jQ6NeQe+uLyo$o!whyCL|z03QcZ2 zDp%-2gA!zgW1te?(p7Ap62e;KzCaXh5CN5-w}|yn459=$Ul2%*HEmk6EkYZjjH1KN zYJaWo8NBx!h1xdr$-Ykfjd3UQ^~Wb_+uDC0SK?iJ%D-K6AXd z<$V2tnSHm7ufK5YEC2@&?z@JsKQXh1KRvn7=j%IwdtM`cA%ic!c$$UGqM`;a&j|tR z1y)4_eZt-q-g}hrggPX1;Dtg*RnE7UdHUpWD)${FRD#SJl=6r`BT!&GdD^6~25l`3 zr3k}PL)Kb@u{jfALY{TVTL$Z0sRxS+ z7>E=ImoYO~UO2zRLXl%!fS0OFqk}R{ehUmp7^zix{o(yQuy=&I2A^hx zk-)fOE&5jAy(e4?sMkqzOBhI$6If$VQc_LAHN!hdJQ9z025gG=o`JELG;gys-^4mc zl2oZCRfLn|wjkT#byZ4%F=Z)U`&@7C> zn-pmaq=*QGU}SuhAdrv?r1uD6QK~f52ce|h>}`BfltDOQAgR_8qym?Bh_ygSNoR+v zVRt&6YhK%|TiZ9pUmtfmU+?4A;K^etF29zqf9lu@MQZrY`-TDdNd~tEhe*1jA&(}Be^^ZTlK;*ZNuP^@O+j#x|{>L}P*Z=6HHa5FGeEsyP z^GqK;%zysf-{enz{vzLUV1mzFT)i$|KYivRQ!`UsIDVW%2ln>V|AD>ZNEFJdYxw#L z7w3?z>aIgzuM1i2g-i7{$Z9{mSd+ckck8t1enzpRV{HyWEew_noD;(tamu? z356t#67oWjdrzc7+AYheOXqpy@C;*>3R*^Z?PwPURb&KKBIB~yR)j}bi!E}jGoU1) z7RbziaY!KvqYB1lG*_31v}I%eETS6B)YlI8{T3muv*PdzFtp>K|Yx;h<=9@mO>@BQYexy|j%tFE8j6n)ai zt4CoCvvUiy^Maw_Axyi8w+^iX3X`FOJ9EQ!Da>ws5CNjVA~~QdaQJV{I9E?u0}Nh0qc&G;(zwr9QE&H`!_hG*Sz!r9$YOJabC=ICzcP>PA0GVFloI|P7 z5we~p@0`P0yKT{V_X6%TzTU?zLKJSv*FSTzjj$F`6dQc~QzvtxEVvp&+^FN+xmQchoQTkfKb<*`U+K-*`og_BndO@HyxjEK)jx_r z=@zMvFd{)Yh@`>!oD~Zutn-V1bevh$Aj&hstc_8Emi0)jka2H(0wV08J{^?>1*4*B-I} zoz$_wat>bfb^~@hI+2dtc%%~4ZJRgkucJ(ZKRbSbGYjW1^+UAVDS-?yc|kSOU~)q3 z@HQutTThI#$Bn1xa=g|GZw=Zz5+v4oaDqaBa{*d*AuU~stMrP1gd*=Cr6&p%MQfFc zvP=%udF`VQ@%UH=(q$~rbbyxN4b}j%wxQ8>BeZ>v6hK;#s1Ou1@t^}Ro}<3Qc{PQPq%5WXz=vUx@nuD5d0VKpKxGIGEn7(X;lOSSQl zCnuxGQj*DGRxX|^)7-oTuP{pC@W`9k*ldNYlcAI%3MK7yktnXxX)j=llu&8f=K9y) z)v4w;#755A)i0K?o9}SJhR1wuD}nTCt-mYNF4xx**X8<>UDmHsKXGeZeV&`2Z|?tk z-^EUu9J(1Z+>Z5pb8xDTN!w^)h@-M#QL~fcf{1FP!LR(^{|Rdq0|Nu(SqmpTUMX^$ z632bA-wn1fNCZW@oS&+CO%fo5ni}NNCBup1i%gCmre1BZGB-!H5>l_mtSl|#*NP=7 zK&^k>9xx7YI99wIzE5wBF~?j z!;Bteb*V`bRftstzQFkc6h3_L?G$7>*j4Ji`<%oXyb6QHdngBp`|c ze(voLto4-BUd`9$UQ3=@w5k9Op%ts`7C{(L(+#AQNbgx`HBmb(&0;9f#!%#-lZ45K z9-tWn)OCc+JSiDtBa<|2kcb-FV~H*Y}OacenHPNB7kD^2Md= z^7S|GxxI7ly#$Nk+YUDP!{^U$8()9&*fPFHKDm>8{oH$>VB}}Myk-0MI$xjt(Z9st zPyN{ye0}zxeKUXQUwxI=KKc+Jd109(Ew7J{ys!-P&Jxk&8~^|y07*naRM$WH(h_iU ze0}l9-o(()f9bk>{Y&q8J-_?qGbBmE15vUiU;p@tRb0ni!PkHNcRzvqkz3E#|MZ3P z_$cAiXENgUt>x>74;_Vege_7Y-ZRJ-&aPbdxISO+jjwl&h~Mp=hOXmt3gson7wAA^ zvNldgR5ZY;i%T@yZ3^oVQm+*uC{6D|u6fsXc`DOxM_X7<&&{*Y8fH9*P~@e)mUU%X z?`<~dbVKIBON9^)DFlPHgu~MlEVK(;et|RX<3z?0Ms@N4q^?p(OUvXKo1^vCF8Chj z&92B@i$H6f^W@GGRU`5uqwt=f5@YgiIruv}z&ucR9b&VLEMGwtOY9k}^T?hmubB$L zUz>uwozR70Fpi1$G#DHjXL4eh=g!S?;^I6D%~i}`fUp)!ffAO1M#SE+F%IqD$HdqO zv71FHRTeh125T*dGBsK$g)z5RlhE2Sg>m4aJbQ!fqemt%Ubw!~~+W**ZKyl+dw`v*#~vL`Gh(;Lqj) zLw&qDH~}lGt1K@sQwfKOk{E=?TDvj7>}C|!p)d&TkXlg-G?R@ghbM+mO7XSk99reX z5&~!OSy_}emJwAw!itY?>-gKOlEe{(H3Ukbl8ClXvBp!Ku2U@C-s@Y{8dzg!wo^h| zFcN7Fj8F5rqkA~IcMy6s1b0Q4Q;#)A>Z3Hq2AR6N%CQRzoSt1_aka@x)1g^)|zj1bnK3~6iypr*~VriP&xzN9w zG&<=bgcnF>2?J=G0w2}L(L8f}mep1pV?9!8JOY$N2?0{>`c2K9fVP&LSeWC~>;!{T z4XQzaGZrHpft2`eE8A_p(Q;W98^Ksar%hC;a(HZzNNV;C)cEt$b1bfQSjix5W@Moy zuGF#8QLRK|W_HW=Zzh$h7f4Y@dWrYY&Qp*vX_^8OS3sh>Y5VN##M`kc!WwMaWO{sv zJ(D9meq=94#|N0IJBsT&V7CoLC&lLm6<8+2h~a&sJUTT>GlPyXEH0fV3>1|xAW@oF zN@86;54FXvRZ%a~sn!?KmvzoI|6Pao9*@5z^Gms~mxU6g)ezb9nG=rXJNTD%Yhl?n?B zD}4QhV;Ezuo7%Ykuy(hbig!1>_slNLbME|kh6ig@DhW34kmflm&=fn(SbKzV4v$A# zOQ<~cC}jUo1*H^whU;X{&9m%t3Kz24fu*)3u2t|xLJ(2WtG9LhgY5)iC7z&+B2tQU zWfi=mQp6DT7May6YSA#6ZDDPPJ&hU%hXNj%tnuhnoslS|*kQiA*qK8J1u|efP8ix- z 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 W+ka<-`x+AiP3p?pO4SM$AO8zw3TX-e literal 0 HcmV?d00001 diff --git a/nodejs-tests/compareImages.test.js b/nodejs-tests/compareImages.test.js index dfb1be1..9f64f89 100644 --- a/nodejs-tests/compareImages.test.js +++ b/nodejs-tests/compareImages.test.js @@ -21,6 +21,12 @@ describe('compareImages', () => { ); expect(buffer.equals(comparison)).toBe(true); + + const buffer2 = data.getBuffer(true); + const comparison2 = fs.readFileSync( + './nodejs-tests/PeopleComparedToPeople2WithOriginal.png' + ); + expect(buffer2.equals(comparison2)).toBe(true); }); test('throws when failed', async () => { diff --git a/resemble.js b/resemble.js index 58cefb0..c06c32e 100644 --- a/resemble.js +++ b/resemble.js @@ -513,8 +513,16 @@ URL: https://github.com/Huddle/Resemble.js }; if (hiddenCanvas.toBuffer) { - data.getBuffer = function() { - context.putImageData(imgd, 0, 0); + data.getBuffer = function(includeOriginal) { + if (includeOriginal) { + var imageWidth = hiddenCanvas.width + 2; + hiddenCanvas.width = imageWidth * 3; + context.putImageData(img1, 0, 0); + context.putImageData(img2, imageWidth, 0); + context.putImageData(imgd, imageWidth * 2, 0); + } else { + context.putImageData(imgd, 0, 0); + } return hiddenCanvas.toBuffer(); } } From b858315d9f1fbad5f99d635319dac6591e4ddd9e Mon Sep 17 00:00:00 2001 From: Matteo Hertel Date: Tue, 24 Oct 2017 11:12:14 +0100 Subject: [PATCH 02/35] Fix node js example in the readme --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ca58c49..de32ac4 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,10 @@ npm install canvas The API under Node is the same as on the browser with one addition, a promise based `compareImage` convenience function that is used as follows: ``` js -const compareImage = require('resemblejs/compareImages'); +const compareImages = require('resemblejs/compareImages'); +const fs = require("fs"); +async function getDiff(){ // The parameters can be Node Buffers // data is the same as usual with an additional getBuffer() function const data = await compareImages( @@ -128,6 +130,11 @@ const data = await compareImages( ); fs.writeFileSync('./output.png', data.getBuffer()); + +} + +getDiff(); + ``` #### Tests From 3f13b6c3e464d4e1499fa92ed7d2148204248e81 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 22 Nov 2017 16:16:17 +0000 Subject: [PATCH 03/35] Remove peer dependency on canvas, use canvas-prebuilt #45 --- .dockerignore | 8 + .npmignore | 6 +- nodejs-tests/resemble.test.js | 55 +++---- package-lock.json | 280 +++++++++++++++++++++++++++++++++- package.json | 11 +- resemble.js | 4 +- 6 files changed, 328 insertions(+), 36 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..afa9cbd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.idea +node_modules +demoassets +npm-debug.log +libs +index.html +bower.json +README.md \ No newline at end of file diff --git a/.npmignore b/.npmignore index b26c658..6caa0e6 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,8 @@ npm-debug.log libs index.html bower.json -README.md \ No newline at end of file +README.md +chai-tests +nodejs-tests +.dockerignore +dockerfile \ No newline at end of file diff --git a/nodejs-tests/resemble.test.js b/nodejs-tests/resemble.test.js index 144cdbb..dd89049 100644 --- a/nodejs-tests/resemble.test.js +++ b/nodejs-tests/resemble.test.js @@ -26,33 +26,36 @@ describe('resemble', () => { }); }); - test('files', () => { - return new Promise(function(resolve, reject) { - resemble('./demoassets/People.jpg') - .compareTo('./demoassets/People2.jpg') - .onComplete(function(data) { - // console.info('Reached oncomplete for request_success'); - expect(data.diffBounds).toEqual( - expect.objectContaining({ - bottom: expect.any(Number), - left: expect.any(Number), - top: expect.any(Number), - right: expect.any(Number) - }) - ); + // this doesn't work on windows - expect(data.diffBounds.bottom).toEqual(431); - expect(data.diffBounds.left).toEqual(22); - expect(data.diffBounds.right).toEqual(450); - expect(data.diffBounds.top).toEqual(58); - expect(data.dimensionDifference.height).toEqual(0); - expect(data.dimensionDifference.width).toEqual(0); - expect(data.isSameDimensions).toBe(true); - expect(data.misMatchPercentage).toEqual('8.66'); - resolve(); - }); - }); - }); + // test('files', () => { + // return new Promise(function(resolve, reject) { + // console.log('hello there how are you'); + // resemble('demoassets/People.jpg') + // .compareTo('demoassets/People2.jpg') + // .onComplete(function(data) { + // // console.info('Reached oncomplete for request_success'); + // expect(data.diffBounds).toEqual( + // expect.objectContaining({ + // bottom: expect.any(Number), + // left: expect.any(Number), + // top: expect.any(Number), + // right: expect.any(Number) + // }) + // ); + // + // expect(data.diffBounds.bottom).toEqual(431); + // expect(data.diffBounds.left).toEqual(22); + // expect(data.diffBounds.right).toEqual(450); + // expect(data.diffBounds.top).toEqual(58); + // expect(data.dimensionDifference.height).toEqual(0); + // expect(data.dimensionDifference.width).toEqual(0); + // expect(data.isSameDimensions).toBe(true); + // expect(data.misMatchPercentage).toEqual('8.66'); + // resolve(); + // }); + // }); + // }); test('file not found', () => { return new Promise(function(resolve, reject) { diff --git a/package-lock.json b/package-lock.json index 0c7ebcc..c0b8dcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 1, "dependencies": { "abab": { @@ -9,6 +9,12 @@ "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", "dev": true }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "acorn": { "version": "4.0.13", "resolved": "https://proget.huddle.local/npm/npmjs.org/acorn/-/acorn-4.0.13.tgz", @@ -57,6 +63,18 @@ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true + }, "argparse": { "version": "1.0.9", "resolved": "https://proget.huddle.local/npm/npmjs.org/argparse/-/argparse-1.0.9.tgz", @@ -238,6 +256,12 @@ "dev": true, "optional": true }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true + }, "boom": { "version": "2.10.1", "resolved": "https://proget.huddle.local/npm/npmjs.org/boom/-/boom-2.10.1.tgz", @@ -288,6 +312,12 @@ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, + "canvas-prebuilt": { + "version": "1.6.5-prerelease.1", + "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz", + "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw=", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -324,6 +354,18 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "combined-stream": { "version": "1.0.5", "resolved": "https://proget.huddle.local/npm/npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", @@ -336,6 +378,12 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, "content-type-parser": { "version": "1.0.1", "resolved": "https://proget.huddle.local/npm/npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", @@ -354,12 +402,60 @@ "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", "dev": true }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, "cryptiles": { "version": "2.0.5", "resolved": "https://proget.huddle.local/npm/npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true }, + "css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=", + "dev": true + }, + "css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=", + "dev": true + }, + "css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=", + "dev": true + }, + "css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=", + "dev": true + }, + "css-global-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=", + "dev": true + }, + "css-list-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-list-helpers/-/css-list-helpers-1.0.1.tgz", + "integrity": "sha1-//VxkiAtuDJAxBaG+RnkSacCT30=", + "dev": true + }, + "css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=", + "dev": true + }, "cssom": { "version": "0.3.2", "resolved": "https://proget.huddle.local/npm/npmjs.org/cssom/-/cssom-0.3.2.tgz", @@ -412,6 +508,12 @@ } } }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://proget.huddle.local/npm/npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -430,12 +532,24 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true }, + "detect-libc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "dev": true + }, "diff": { "version": "3.3.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/diff/-/diff-3.3.0.tgz", @@ -611,6 +725,24 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true + }, "get-caller-file": { "version": "1.0.2", "resolved": "https://proget.huddle.local/npm/npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", @@ -708,6 +840,12 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, "hawk": { "version": "3.1.3", "resolved": "https://proget.huddle.local/npm/npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -762,6 +900,12 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "invariant": { "version": "2.2.2", "resolved": "https://proget.huddle.local/npm/npmjs.org/invariant/-/invariant-2.2.2.tgz", @@ -882,6 +1026,12 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isnumeric": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz", + "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=", + "dev": true + }, "isobject": { "version": "2.1.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/isobject/-/isobject-2.1.0.tgz", @@ -1316,6 +1466,18 @@ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", "dev": true }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "dev": true + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -1328,6 +1490,12 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://proget.huddle.local/npm/npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -1402,6 +1570,12 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true + }, "p-limit": { "version": "1.1.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/p-limit/-/p-limit-1.1.0.tgz", @@ -1420,6 +1594,12 @@ "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", "dev": true }, + "parse-css-font": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/parse-css-font/-/parse-css-font-2.0.2.tgz", + "integrity": "sha1-e2CwYHBaJam5C38O1JPlgjJIplI=", + "dev": true + }, "parse-glob": { "version": "3.0.4", "resolved": "https://proget.huddle.local/npm/npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -1521,6 +1701,12 @@ "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", "dev": true }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, "prr": { "version": "0.0.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/prr/-/prr-0.0.0.tgz", @@ -1576,6 +1762,20 @@ } } }, + "rc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -1609,6 +1809,12 @@ } } }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true + }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://proget.huddle.local/npm/npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", @@ -1737,6 +1943,12 @@ "integrity": "sha1-Zq/Ue2oSky2Qccv9mKUueFzQuhQ=", "dev": true }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/slash/-/slash-1.0.0.tgz", @@ -1799,6 +2011,12 @@ } } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true + }, "string-length": { "version": "1.0.1", "resolved": "https://proget.huddle.local/npm/npmjs.org/string-length/-/string-length-1.0.1.tgz", @@ -1829,6 +2047,12 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { "version": "2.0.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -1841,6 +2065,24 @@ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", "dev": true }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true + }, + "tar-pack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", + "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "dev": true + }, + "tcomb": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-2.7.0.tgz", + "integrity": "sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=", + "dev": true + }, "test-exclude": { "version": "4.1.1", "resolved": "https://proget.huddle.local/npm/npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", @@ -1937,6 +2179,30 @@ "dev": true, "optional": true }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true + }, + "units-css": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", + "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", + "dev": true + }, + "unquote": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.0.tgz", + "integrity": "sha1-mOH8YItrhUx1r7G5WvwJm6adlC8=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, "uuid": { "version": "3.1.0", "resolved": "https://proget.huddle.local/npm/npmjs.org/uuid/-/uuid-3.1.0.tgz", @@ -1955,6 +2221,12 @@ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true }, + "viewport-dimensions": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz", + "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", + "dev": true + }, "walker": { "version": "1.0.7", "resolved": "https://proget.huddle.local/npm/npmjs.org/walker/-/walker-1.0.7.tgz", @@ -2005,6 +2277,12 @@ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true + }, "wordwrap": { "version": "0.0.3", "resolved": "https://proget.huddle.local/npm/npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", diff --git a/package.json b/package.json index 82518d7..894c26e 100644 --- a/package.json +++ b/package.json @@ -22,16 +22,15 @@ }, "homepage": "https://github.com/Huddle/Resemble.js", "scripts": { - "test": "jest ./nodejs-tests", - "test-watch": "jest --watch ./nodejs-tests" + "test": "jest nodejs-tests", + "test-watch": "jest --watch nodejs-tests" }, "devDependencies": { "chai": "^3.4.1", "jest": "^20.0.4", - "jest-cli": "^20.0.4" - }, - "peerDependencies": { - "canvas": "^1.6.5" + "jest-cli": "^20.0.4", + "canvas-prebuilt": "^1.6.5-prerelease.1", + "color-convert": "^1.9.0" }, "jest": { "testEnvironment": "node" diff --git a/resemble.js b/resemble.js index e7eca2f..c7889f0 100644 --- a/resemble.js +++ b/resemble.js @@ -83,7 +83,7 @@ URL: https://github.com/Huddle/Resemble.js var document = typeof window != "undefined" ? window.document : { createElement: function() { // This will work as long as only createElement is used on window.document - var Canvas = require('canvas'); + var Canvas = require('canvas-prebuilt'); return new Canvas(); } }; @@ -180,7 +180,7 @@ URL: https://github.com/Huddle/Resemble.js if (typeof Image !== 'undefined') { hiddenImage = new Image(); } else { - var CanvasImage = require('canvas').Image; + var CanvasImage = require('canvas-prebuilt').Image; hiddenImage = new CanvasImage(); hiddenImage.setAttribute = function setAttribute() { }; } From a8f4be0a80c6e2cada55abd4edc1f07eecddaf88 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 22 Nov 2017 16:17:09 +0000 Subject: [PATCH 04/35] 2.5.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0b8dcd..9715856 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.4.0", + "version": "2.5.0", "lockfileVersion": 1, "dependencies": { "abab": { diff --git a/package.json b/package.json index 894c26e..5ebfb14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.4.0", + "version": "2.5.0", "description": "Image analysis and comparison with HTML5", "main": "resemble.js", "repository": { From 24e3a581a4432450fda2fda9e4c868dce0081662 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 22 Nov 2017 16:19:54 +0000 Subject: [PATCH 05/35] minor bump --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index ab11696..20cae59 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "resemblejs", "main": "resemble.js", - "version": "2.4.0", + "version": "2.5.0", "homepage": "https://github.com/Huddle/Resemble.js", "authors": [ "James Cryer " From 7fd746380ae119b2de0ddecf73cc0c3a57cd54e7 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 22 Nov 2017 17:06:35 +0000 Subject: [PATCH 06/35] lock should use public registry --- package-lock.json | 1061 +++++++++++++++++++++++---------------------- 1 file changed, 533 insertions(+), 528 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9715856..8272dae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,9 +4,9 @@ "lockfileVersion": 1, "dependencies": { "abab": { - "version": "1.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/abab/-/abab-1.0.3.tgz", - "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", "dev": true }, "abbrev": { @@ -17,49 +17,61 @@ }, "acorn": { "version": "4.0.13", - "resolved": "https://proget.huddle.local/npm/npmjs.org/acorn/-/acorn-4.0.13.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true }, "acorn-globals": { "version": "3.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true }, "ajv": { "version": "4.11.8", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ajv/-/ajv-4.11.8.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, "ansi-escapes": { "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "anymatch": { "version": "1.3.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true }, @@ -77,181 +89,181 @@ }, "argparse": { "version": "1.0.9", - "resolved": "https://proget.huddle.local/npm/npmjs.org/argparse/-/argparse-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-equal": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/arrify/-/arrify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asn1": { "version": "0.2.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/asn1/-/asn1-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, "assert-plus": { "version": "0.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, "assertion-error": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", "dev": true }, "async": { - "version": "2.5.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha1-hDGQ/WtzV6C54clW7d3V7IRitU0=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true }, "aws4": { "version": "1.6.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/aws4/-/aws4-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true }, "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true }, "babel-core": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true }, "babel-generator": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", - "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true }, "babel-helpers": { "version": "6.24.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true }, "babel-jest": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", "dev": true }, "babel-messages": { "version": "6.23.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true }, "babel-plugin-istanbul": { - "version": "4.1.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz", - "integrity": "sha1-GN3oS/POMp/d8/QQP66SFFbY5Yc=", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", "dev": true }, "babel-plugin-jest-hoist": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=", "dev": true }, "babel-preset-jest": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", "dev": true }, "babel-register": { - "version": "6.24.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true }, "babel-runtime": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", - "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true }, "babel-template": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true }, "babel-traverse": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true }, "babel-types": { - "version": "6.25.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true }, "babylon": { - "version": "6.17.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true @@ -264,25 +276,25 @@ }, "boom": { "version": "2.10.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/boom/-/boom-2.10.1.tgz", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true }, "brace-expansion": { "version": "1.1.8", - "resolved": "https://proget.huddle.local/npm/npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true }, "braces": { "version": "1.8.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/braces/-/braces-1.8.5.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true }, "browser-resolve": { "version": "1.11.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", "dev": true, "dependencies": { @@ -296,22 +308,29 @@ }, "bser": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/bser/-/bser-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", "dev": true }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "callsites": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/callsites/-/callsites-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, "canvas-prebuilt": { "version": "1.6.5-prerelease.1", "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz", @@ -320,37 +339,60 @@ }, "caseless": { "version": "0.12.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/caseless/-/caseless-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true + }, "chai": { "version": "3.5.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/chai/-/chai-3.5.0.tgz", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true }, "ci-info": { - "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ci-info/-/ci-info-1.0.0.tgz", - "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", "dev": true }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, "co": { "version": "4.6.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, @@ -368,13 +410,13 @@ }, "combined-stream": { "version": "1.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, @@ -385,21 +427,21 @@ "dev": true }, "content-type-parser": { - "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", - "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", "dev": true }, "convert-source-map": { "version": "1.5.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", "dev": true }, "core-js": { - "version": "2.4.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", "dev": true }, "core-util-is": { @@ -410,7 +452,7 @@ }, "cryptiles": { "version": "2.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true }, @@ -458,19 +500,19 @@ }, "cssom": { "version": "0.3.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/cssom/-/cssom-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", "dev": true }, "cssstyle": { "version": "0.2.37", - "resolved": "https://proget.huddle.local/npm/npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "dependencies": { @@ -483,20 +525,20 @@ } }, "debug": { - "version": "2.6.8", - "resolved": "https://proget.huddle.local/npm/npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "deep-eql": { "version": "0.1.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, "dependencies": { @@ -516,19 +558,19 @@ }, "deep-is": { "version": "0.1.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, @@ -540,7 +582,7 @@ }, "detect-indent": { "version": "4.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true }, @@ -551,177 +593,167 @@ "dev": true }, "diff": { - "version": "3.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/diff/-/diff-3.3.0.tgz", - "integrity": "sha1-BWaVFQ16qTI3yn43isOxaCt5Y7k=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", "dev": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true }, "errno": { "version": "0.1.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/errno/-/errno-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "dev": true }, "error-ex": { "version": "1.3.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "escodegen": { - "version": "1.8.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", "dev": true, "dependencies": { "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } } } }, "esprima": { "version": "4.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", "dev": true }, "estraverse": { - "version": "1.9.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/esutils/-/esutils-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "exec-sh": { - "version": "0.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz", - "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", "dev": true }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true }, "expand-range": { "version": "1.8.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true }, "extend": { "version": "3.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/extend/-/extend-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, "extglob": { "version": "0.3.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/extglob/-/extglob-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true }, "extsprintf": { - "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://proget.huddle.local/npm/npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fb-watchman": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "dev": true }, "filename-regex": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fileset": { "version": "2.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/fileset/-/fileset-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true }, "find-up": { "version": "2.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true }, "for-in": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/for-own/-/for-own-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.1.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/form-data/-/form-data-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, @@ -745,13 +777,13 @@ }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "https://proget.huddle.local/npm/npmjs.org/getpass/-/getpass-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "dependencies": { @@ -765,44 +797,44 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true }, "glob-base": { "version": "0.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true }, "glob-parent": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true }, "globals": { "version": "9.18.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://proget.huddle.local/npm/npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "growly": { "version": "1.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/growly/-/growly-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true }, "handlebars": { - "version": "4.0.10", - "resolved": "https://proget.huddle.local/npm/npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "dependencies": { "async": { @@ -815,31 +847,34 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } + "dev": true } } }, "har-schema": { "version": "1.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "dev": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true }, "has-ansi": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -848,55 +883,55 @@ }, "hawk": { "version": "3.1.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/hawk/-/hawk-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true }, "hoek": { "version": "2.16.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/hoek/-/hoek-2.16.3.tgz", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "home-or-tmp": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true }, "hosted-git-info": { "version": "2.5.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "html-encoding-sniffer": { - "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", - "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true }, "http-signature": { "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true }, "iconv-lite": { - "version": "0.4.13", - "resolved": "https://proget.huddle.local/npm/npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://proget.huddle.local/npm/npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true }, "inherits": { "version": "2.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, @@ -908,121 +943,121 @@ }, "invariant": { "version": "2.2.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/invariant/-/invariant-2.2.2.tgz", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true }, "invert-kv": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true }, "is-ci": { "version": "1.0.10", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", "dev": true }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true }, "is-extendable": { "version": "0.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true }, "is-number": { "version": "2.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-number/-/is-number-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, @@ -1034,214 +1069,179 @@ }, "isobject": { "version": "2.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/isstream/-/isstream-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "istanbul-api": { - "version": "1.1.11", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-api/-/istanbul-api-1.1.11.tgz", - "integrity": "sha1-/MC0YeKzvaceMFFVE4I4doJX2d4=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", "dev": true }, "istanbul-lib-coverage": { "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha1-c7+5mIhSmUFck9OKPprfeEp3qdo=", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", "dev": true }, "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha1-3WYH8DB2V4/n1vKmMM8UO0m6zdw=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true }, "istanbul-lib-instrument": { - "version": "1.7.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz", - "integrity": "sha1-6f2SDkdn89Ge3HZeLWs/XMvQ7qg=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true }, "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha1-8OVfVmVf+jQiIIC3oM1HYOFAX8k=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "dependencies": { "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } + "dev": true } } }, "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha1-pv4ay6jOCO68Y45XLilNJnAIqgw=", - "dev": true + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true + } + } }, "istanbul-reports": { - "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha1-BCvlyJ4XW8P4ZSPKqynAFOd/7k4=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", "dev": true }, "jest": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest/-/jest-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", - "dev": true, - "dependencies": { - "jest-cli": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", - "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "callsites": "2.0.0", - "chalk": "1.1.3", - "graceful-fs": "4.1.11", - "is-ci": "1.0.10", - "istanbul-api": "1.1.11", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-instrument": "1.7.4", - "istanbul-lib-source-maps": "1.2.1", - "jest-changed-files": "20.0.3", - "jest-config": "20.0.4", - "jest-docblock": "20.0.3", - "jest-environment-jsdom": "20.0.3", - "jest-haste-map": "20.0.4", - "jest-jasmine2": "20.0.4", - "jest-message-util": "20.0.3", - "jest-regex-util": "20.0.3", - "jest-resolve-dependencies": "20.0.3", - "jest-runtime": "20.0.4", - "jest-snapshot": "20.0.3", - "jest-util": "20.0.3", - "micromatch": "2.3.11", - "node-notifier": "5.1.2", - "pify": "2.3.0", - "slash": "1.0.0", - "string-length": "1.0.1", - "throat": "3.2.0", - "which": "1.2.14", - "worker-farm": "1.4.1", - "yargs": "7.1.0" - } - } - } + "dev": true }, "jest-changed-files": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=", "dev": true }, "jest-cli": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", "dev": true }, "jest-config": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-config/-/jest-config-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", "dev": true }, "jest-diff": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", "dev": true }, "jest-docblock": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=", "dev": true }, "jest-environment-jsdom": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", "dev": true }, "jest-environment-node": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", "dev": true }, "jest-haste-map": { - "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-haste-map/-/jest-haste-map-20.0.4.tgz", - "integrity": "sha1-ZT61XIic48Ah97lGk/IKQVm63wM=", + "version": "20.0.5", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", + "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==", "dev": true }, "jest-jasmine2": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", "dev": true }, "jest-matcher-utils": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", "dev": true }, "jest-matchers": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", "dev": true }, "jest-message-util": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", "dev": true }, "jest-mock": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=", "dev": true }, "jest-regex-util": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=", "dev": true }, "jest-resolve": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", "dev": true }, "jest-resolve-dependencies": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", "dev": true }, "jest-runtime": { "version": "20.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", "dev": true, "dependencies": { @@ -1255,87 +1255,87 @@ }, "jest-snapshot": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", "dev": true }, "jest-util": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-util/-/jest-util-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", "dev": true }, "jest-validate": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", "dev": true }, "js-tokens": { "version": "3.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { - "version": "3.9.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", - "integrity": "sha1-T/u/JcKsljuCmdx02n43QN4cGM4=", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true }, "jsbn": { "version": "0.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "jsdom": { "version": "9.12.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "0.5.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, "jsprim": { - "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "dependencies": { "assert-plus": { @@ -1348,121 +1348,134 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, "lcid": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/lcid/-/lcid-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true }, "leven": { "version": "2.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/leven/-/leven-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", "dev": true }, "levn": { "version": "0.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/levn/-/levn-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true }, "load-json-file": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true }, "locate-path": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true }, "lodash": { "version": "4.17.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/lodash/-/lodash-4.17.4.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, "loose-envify": { "version": "1.3.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true }, "makeerror": { "version": "1.0.11", - "resolved": "https://proget.huddle.local/npm/npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true }, "merge": { "version": "1.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/merge/-/merge-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", "dev": true }, "micromatch": { "version": "2.3.11", - "resolved": "https://proget.huddle.local/npm/npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true }, "mime-db": { - "version": "1.29.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", "dev": true }, "mime-types": { - "version": "2.1.16", - "resolved": "https://proget.huddle.local/npm/npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true }, "minimist": { "version": "0.0.8", - "resolved": "https://proget.huddle.local/npm/npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "natural-compare": { "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node-int64": { "version": "0.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, "node-notifier": { "version": "5.1.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", "dev": true }, @@ -1480,13 +1493,13 @@ }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true }, "normalize-path": { "version": "2.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true }, @@ -1498,49 +1511,49 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nwmatcher": { - "version": "1.4.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz", - "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", "dev": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object.omit": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true }, "optimist": { "version": "0.6.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/optimist/-/optimist-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true }, "optionator": { "version": "0.8.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/optionator/-/optionator-0.8.2.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "dependencies": { @@ -1554,19 +1567,19 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, @@ -1578,20 +1591,20 @@ }, "p-limit": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true }, "p-map": { - "version": "1.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/p-map/-/p-map-1.1.1.tgz", - "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", "dev": true }, "parse-css-font": { @@ -1602,85 +1615,85 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true }, "parse5": { "version": "1.5.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/parse5/-/parse5-1.5.1.tgz", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", "dev": true }, "path-exists": { "version": "3.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/path-type/-/path-type-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true }, "pify": { "version": "2.3.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "preserve": { "version": "0.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/preserve/-/preserve-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pretty-format": { "version": "20.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", "dev": true, "dependencies": { @@ -1688,17 +1701,14 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } + "dev": true } } }, "private": { - "version": "0.1.7", - "resolved": "https://proget.huddle.local/npm/npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, "process-nextick-args": { @@ -1709,26 +1719,26 @@ }, "prr": { "version": "0.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/prr/-/prr-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", "dev": true }, "punycode": { "version": "1.4.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/punycode/-/punycode-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "qs": { "version": "6.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/qs/-/qs-6.4.0.tgz", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://proget.huddle.local/npm/npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "dependencies": { "is-number": { @@ -1736,18 +1746,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "requires": { - "kind-of": "3.2.2" - }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } + "dev": true } } }, @@ -1755,10 +1759,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } + "dev": true } } }, @@ -1778,13 +1779,13 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "dependencies": { @@ -1792,20 +1793,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } + "dev": true }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "dev": true } } }, @@ -1816,80 +1810,87 @@ "dev": true }, "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", "dev": true }, "regex-cache": { - "version": "0.4.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true }, "remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/repeating/-/repeating-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true }, "request": { "version": "2.81.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/request/-/request-2.81.0.tgz", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true }, "require-directory": { "version": "2.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve": { - "version": "1.4.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha1-p1vgHFPaJdk0qY69DkxKcxL5KoY=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true + }, "rimraf": { - "version": "2.6.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "sane": { "version": "1.6.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/sane/-/sane-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", "dev": true, "dependencies": { @@ -1897,19 +1898,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", - "dev": true, - "requires": { - "node-int64": "0.4.0" - } + "dev": true }, "fb-watchman": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", - "dev": true, - "requires": { - "bser": "1.0.2" - } + "dev": true }, "minimist": { "version": "1.2.0", @@ -1921,26 +1916,26 @@ }, "sax": { "version": "1.2.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "semver": { "version": "5.4.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shellwords": { - "version": "0.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/shellwords/-/shellwords-0.1.0.tgz", - "integrity": "sha1-Zq/Ue2oSky2Qccv9mKUueFzQuhQ=", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, "signal-exit": { @@ -1951,55 +1946,55 @@ }, "slash": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/slash/-/slash-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "sntp": { "version": "1.0.9", - "resolved": "https://proget.huddle.local/npm/npmjs.org/sntp/-/sntp-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true }, "source-map": { - "version": "0.5.6", - "resolved": "https://proget.huddle.local/npm/npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { - "version": "0.4.15", - "resolved": "https://proget.huddle.local/npm/npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true }, "spdx-correct": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true }, "spdx-expression-parse": { "version": "1.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.13.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "dependencies": { @@ -2019,31 +2014,31 @@ }, "string-length": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/string-length/-/string-length-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "dev": true }, "string-width": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true }, "stringstream": { "version": "0.0.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true }, "strip-bom": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true }, @@ -2055,13 +2050,13 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "symbol-tree": { "version": "3.2.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", "dev": true }, @@ -2085,74 +2080,74 @@ }, "test-exclude": { "version": "4.1.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha1-TYSWSwlmsAh+zDNKLOAC09k0HiY=", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", "dev": true }, "throat": { "version": "3.2.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/throat/-/throat-3.2.0.tgz", - "integrity": "sha1-UMsGcO28QCN7njR9fh+I5GIK+DY=", + "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", + "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==", "dev": true }, "tmpl": { "version": "1.0.4", - "resolved": "https://proget.huddle.local/npm/npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "tough-cookie": { - "version": "2.3.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true }, "tr46": { "version": "0.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/tr46/-/tr46-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", "dev": true }, "trim-right": { "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://proget.huddle.local/npm/npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "type-check": { "version": "0.3.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/type-check/-/type-check-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true }, "type-detect": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://proget.huddle.local/npm/npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, @@ -2162,19 +2157,13 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } + "optional": true } } }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true @@ -2205,21 +2194,29 @@ }, "uuid": { "version": "3.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, "validate-npm-package-license": { "version": "3.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true }, "verror": { - "version": "1.3.6", - "resolved": "https://proget.huddle.local/npm/npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } }, "viewport-dimensions": { "version": "0.2.0", @@ -2229,31 +2226,31 @@ }, "walker": { "version": "1.0.7", - "resolved": "https://proget.huddle.local/npm/npmjs.org/walker/-/walker-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true }, "watch": { "version": "0.10.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/watch/-/watch-0.10.0.tgz", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=", "dev": true }, "webidl-conversions": { - "version": "4.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/webidl-conversions/-/webidl-conversions-4.0.1.tgz", - "integrity": "sha1-gBWherg+fhsxFjhIas6B2mziBqA=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, "whatwg-encoding": { - "version": "1.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", - "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", "dev": true }, "whatwg-url": { "version": "4.8.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", "dev": true, "dependencies": { @@ -2266,14 +2263,14 @@ } }, "which": { - "version": "1.2.14", - "resolved": "https://proget.huddle.local/npm/npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true }, "which-module": { "version": "1.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/which-module/-/which-module-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, @@ -2283,45 +2280,58 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, "wordwrap": { "version": "0.0.3", - "resolved": "https://proget.huddle.local/npm/npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "worker-farm": { - "version": "1.4.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/worker-farm/-/worker-farm-1.4.1.tgz", - "integrity": "sha1-pDi8mTp6fRM7y2VHyV7KfP9Il9g=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true }, "wrappy": { "version": "1.0.2", - "resolved": "https://proget.huddle.local/npm/npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "xml-name-validator": { "version": "2.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", "dev": true }, "xtend": { "version": "4.0.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/xtend/-/xtend-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "y18n": { "version": "3.2.1", - "resolved": "https://proget.huddle.local/npm/npmjs.org/y18n/-/y18n-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yargs": { "version": "7.1.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/yargs/-/yargs-7.1.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "dependencies": { @@ -2335,18 +2345,13 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } + "dev": true } } }, "yargs-parser": { "version": "5.0.0", - "resolved": "https://proget.huddle.local/npm/npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "dependencies": { From c66498193cdb6da27111ad26ac6515079eb8c88b Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 22 Nov 2017 17:07:13 +0000 Subject: [PATCH 07/35] 2.5.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8272dae..f34fd15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.5.0", + "version": "2.5.1", "lockfileVersion": 1, "dependencies": { "abab": { diff --git a/package.json b/package.json index 5ebfb14..ea6e47a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.5.0", + "version": "2.5.1", "description": "Image analysis and comparison with HTML5", "main": "resemble.js", "repository": { From 3ee058afb0f214dee5054ffa002bd05c8df07fb8 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Tue, 28 Nov 2017 16:13:30 +0000 Subject: [PATCH 08/35] add options to compareImages --- README.md | 26 ++++++++++++++++++++++---- compareImages.js | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0f3bda6..bba094b 100644 --- a/README.md +++ b/README.md @@ -121,17 +121,35 @@ The API under Node is the same as on the browser with one addition, a promise ba ``` js const compareImages = require('resemblejs/compareImages'); -const fs = require("fs"); +const fs = require("mz/fs"); async function getDiff(){ + +const options = { + output: { + errorColor: { + red: 255, + green: 0, + blue: 255 + }, + errorType: 'movement', + transparency: 0.3, + largeImageThreshold: 1200, + useCrossOrigin: false, + outputDiff: true + }, + scaleToSameSize: true, + ignore: ['nothing', 'less', 'antialiasing', 'colors', 'alpha'], +}; // The parameters can be Node Buffers // data is the same as usual with an additional getBuffer() function const data = await compareImages( - fs.readFileSync('./demoassets/People.jpg'), - fs.readFileSync('./demoassets/People2.jpg') + await fs.readFile('./demoassets/People.jpg'), + await fs.readFile('./demoassets/People2.jpg'), + options, ); -fs.writeFileSync('./output.png', data.getBuffer()); +await fs.writeFile('./output.png', data.getBuffer()); } diff --git a/compareImages.js b/compareImages.js index 42e5772..1884317 100644 --- a/compareImages.js +++ b/compareImages.js @@ -1,8 +1,38 @@ -const resemble = require('./resemble'); +var resemble = require('./resemble'); -module.exports = async function(image1, image2) { +function applyIgnore(api, ignore) { + switch (ignore) { + case 'nothing': api.ignoreNothing(); + case 'less': api.ignoreLess(); + case 'antialiasing': api.ignoreAntialiasing(); + case 'colors': api.ignoreColors(); + case 'alpha': api.ignoreAlpha(); + default: throw new Error('Invalid ignore: ' + ignore); + } +} + +module.exports = function(image1, image2, options) { return new Promise(function(resolve, reject) { - resemble(image1).compareTo(image2).onComplete(function(data) { + var res = resemble(image1), opt = options || {}, compare; + if (opt.output) { + res.outputSettings(opt.output); + } + + compare = res.compareTo(image2); + + if (opt.scaleToSameSize) { + compare.scaleToSameSize(); + } + + if (typeof opt.ignore === 'string') { + applyIgnore(compare, opt.ignore); + } else if (opt.ignore && opt.ignore.forEach) { + opt.ignore.forEach(function (v) { + applyIgnore(compare, v); + }); + } + + compare.onComplete(function(data) { if (data.error) { reject(data.error); } else { From 59b7cd76e1bf199fc1e0edf479d7d6262b1e8b93 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Tue, 28 Nov 2017 16:45:14 +0000 Subject: [PATCH 09/35] move outputSettings onto resemble object this prevents global variables changing between independant runs. --- README.md | 12 ++-- resemble.js | 188 ++++++++++++++++++++++++++-------------------------- 2 files changed, 99 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index bba094b..b2356bf 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ diff.ignoreAntialiasing(); And change the output display style: ```javascript -resemble.outputSettings({ +resembleControl.outputSettings({ errorColor: { red: 255, green: 0, @@ -75,22 +75,22 @@ resemble.outputSettings({ largeImageThreshold: 1200, useCrossOrigin: false, outputDiff: true -}); -// resembleControl.repaint(); +}) +// .repaint(); ``` It is possible to narrow down the area of comparison, by specifying a bounding box measured in pixels from the top left: ```javascript -resemble.outputSettings({ +resembleControl.outputSettings({ boundingBox: { left: 100, top: 200, right: 200, bottom: 600 } -}); -// resembleControl.repaint(); +}) +// .repaint(); ``` By default, the comparison algorithm skips pixels when the image width or height is larger than 1200 pixels. This is there to mitigate performance issues. diff --git a/resemble.js b/resemble.js index c7889f0..d079504 100644 --- a/resemble.js +++ b/resemble.js @@ -14,82 +14,81 @@ URL: https://github.com/Huddle/Resemble.js }(this, function () { 'use strict'; - var pixelTransparency = 1; - - var errorPixelColor = { // Color for Error Pixels. Between 0 and 255. - red: 255, - green: 0, - blue: 255, - alpha: 255 + var document = typeof window != "undefined" ? window.document : { + createElement: function() { + // This will work as long as only createElement is used on window.document + var Canvas = require('canvas-prebuilt'); + return new Canvas(); + } }; - var targetPix = {r: 0, g: 0, b: 0, a: 0}; // isAntialiased + var resemble = function( fileData ){ + var pixelTransparency = 1; - function colorsDistance(c1, c2){ - return (Math.abs(c1.r - c2.r) + Math.abs(c1.g - c2.g) + Math.abs(c1.b - c2.b))/3; - } + var errorPixelColor = { // Color for Error Pixels. Between 0 and 255. + red: 255, + green: 0, + blue: 255, + alpha: 255 + }; - function withinBoundingBox(x, y, width, height) { - if (!boundingBox) { - return true; + var targetPix = {r: 0, g: 0, b: 0, a: 0}; // isAntialiased + + function colorsDistance(c1, c2){ + return (Math.abs(c1.r - c2.r) + Math.abs(c1.g - c2.g) + Math.abs(c1.b - c2.b))/3; } - return x > (boundingBox.left || 0) && - x < (boundingBox.right || width) && - y > (boundingBox.top || 0) && - y < (boundingBox.bottom || height); - } + function withinBoundingBox(x, y, width, height) { + if (!boundingBox) { + return true; + } - var errorPixelTransform = { - flat: function (px, offset, d1, d2) { - px[offset] = errorPixelColor.red; - px[offset + 1] = errorPixelColor.green; - px[offset + 2] = errorPixelColor.blue; - px[offset + 3] = errorPixelColor.alpha; - }, - movement: function (px, offset, d1, d2) { - px[offset] = ((d2.r * (errorPixelColor.red / 255)) + errorPixelColor.red) / 2; - px[offset + 1] = ((d2.g * (errorPixelColor.green / 255)) + errorPixelColor.green) / 2; - px[offset + 2] = ((d2.b * (errorPixelColor.blue / 255)) + errorPixelColor.blue) / 2; - px[offset + 3] = d2.a; - }, - flatDifferenceIntensity: function (px, offset, d1, d2) { - px[offset] = errorPixelColor.red; - px[offset + 1] = errorPixelColor.green; - px[offset + 2] = errorPixelColor.blue; - px[offset + 3] = colorsDistance(d1, d2); - }, - movementDifferenceIntensity: function (px, offset, d1, d2) { - var ratio = colorsDistance(d1, d2) / 255 * 0.8; - - px[offset] = ((1 - ratio) * (d2.r * (errorPixelColor.red / 255)) + ratio * errorPixelColor.red); - px[offset + 1] = ((1 - ratio) * (d2.g * (errorPixelColor.green / 255)) + ratio * errorPixelColor.green); - px[offset + 2] = ((1 - ratio) * (d2.b * (errorPixelColor.blue / 255)) + ratio * errorPixelColor.blue); - px[offset + 3] = d2.a; - }, - diffOnly: function (px, offset, d1, d2) { - px[offset] = d2.r; - px[offset + 1] = d2.g; - px[offset + 2] = d2.b; - px[offset + 3] = d2.a; + return x > (boundingBox.left || 0) && + x < (boundingBox.right || width) && + y > (boundingBox.top || 0) && + y < (boundingBox.bottom || height); } - }; - var errorPixel = errorPixelTransform.flat; - var errorType; - var boundingBox; - var largeImageThreshold = 1200; - var useCrossOrigin = true; - var document = typeof window != "undefined" ? window.document : { - createElement: function() { - // This will work as long as only createElement is used on window.document - var Canvas = require('canvas-prebuilt'); - return new Canvas(); - } - }; + var errorPixelTransform = { + flat: function (px, offset, d1, d2) { + px[offset] = errorPixelColor.red; + px[offset + 1] = errorPixelColor.green; + px[offset + 2] = errorPixelColor.blue; + px[offset + 3] = errorPixelColor.alpha; + }, + movement: function (px, offset, d1, d2) { + px[offset] = ((d2.r * (errorPixelColor.red / 255)) + errorPixelColor.red) / 2; + px[offset + 1] = ((d2.g * (errorPixelColor.green / 255)) + errorPixelColor.green) / 2; + px[offset + 2] = ((d2.b * (errorPixelColor.blue / 255)) + errorPixelColor.blue) / 2; + px[offset + 3] = d2.a; + }, + flatDifferenceIntensity: function (px, offset, d1, d2) { + px[offset] = errorPixelColor.red; + px[offset + 1] = errorPixelColor.green; + px[offset + 2] = errorPixelColor.blue; + px[offset + 3] = colorsDistance(d1, d2); + }, + movementDifferenceIntensity: function (px, offset, d1, d2) { + var ratio = colorsDistance(d1, d2) / 255 * 0.8; - var resemble = function( fileData ){ + px[offset] = ((1 - ratio) * (d2.r * (errorPixelColor.red / 255)) + ratio * errorPixelColor.red); + px[offset + 1] = ((1 - ratio) * (d2.g * (errorPixelColor.green / 255)) + ratio * errorPixelColor.green); + px[offset + 2] = ((1 - ratio) * (d2.b * (errorPixelColor.blue / 255)) + ratio * errorPixelColor.blue); + px[offset + 3] = d2.a; + }, + diffOnly: function (px, offset, d1, d2) { + px[offset] = d2.r; + px[offset + 1] = d2.g; + px[offset + 2] = d2.b; + px[offset + 3] = d2.a; + } + }; + var errorPixel = errorPixelTransform.flat; + var errorType; + var boundingBox; + var largeImageThreshold = 1200; + var useCrossOrigin = true; var data = {}; var images = []; var updateCallbackArray = []; @@ -745,45 +744,44 @@ URL: https://github.com/Huddle/Resemble.js }, compareTo: function(secondFileData){ return getCompareApi(secondFileData); - } - }; - - }; + }, + outputSettings: function(options){ + var key; + var undefined; - resemble.outputSettings = function(options){ - var key; - var undefined; + if(options.errorColor){ + for (key in options.errorColor) { + errorPixelColor[key] = options.errorColor[key] === undefined ? errorPixelColor[key] : options.errorColor[key]; + } + } - if(options.errorColor){ - for (key in options.errorColor) { - errorPixelColor[key] = options.errorColor[key] === undefined ? errorPixelColor[key] : options.errorColor[key]; - } - } + if(options.errorType && errorPixelTransform[options.errorType] ){ + errorPixel = errorPixelTransform[options.errorType]; + errorType = options.errorType; + } - if(options.errorType && errorPixelTransform[options.errorType] ){ - errorPixel = errorPixelTransform[options.errorType]; - errorType = options.errorType; - } + if(options.errorPixel && typeof options.errorPixel === "function") { + errorPixel = options.errorPixel; + } - if(options.errorPixel && typeof options.errorPixel === "function") { - errorPixel = options.errorPixel; - } + pixelTransparency = isNaN(Number(options.transparency)) ? pixelTransparency : options.transparency; - pixelTransparency = isNaN(Number(options.transparency)) ? pixelTransparency : options.transparency; + if (options.largeImageThreshold !== undefined) { + largeImageThreshold = options.largeImageThreshold; + } - if (options.largeImageThreshold !== undefined) { - largeImageThreshold = options.largeImageThreshold; - } + if (options.useCrossOrigin !== undefined) { + useCrossOrigin = options.useCrossOrigin; + } - if (options.useCrossOrigin !== undefined) { - useCrossOrigin = options.useCrossOrigin; - } + if (options.boundingBox !== undefined) { + boundingBox = options.boundingBox; + } - if (options.boundingBox !== undefined) { - boundingBox = options.boundingBox; - } + return this; + } + }; - return this; }; return resemble; From 512bbc5593cf7512959ddd7f95933b83e6f58331 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Tue, 28 Nov 2017 17:00:28 +0000 Subject: [PATCH 10/35] expose convenience function to browsers --- README.md | 46 +++++++++++++++++++++++++++++++++++++++++++++- compareImages.js | 38 ++++---------------------------------- resemble.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index b2356bf..44ff97d 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,50 @@ You can modify this behaviour by setting the `largeImageThreshold` option to a d `useCrossOrigin` is true by default, you might need to set it to false if you're using [Data URIs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs). +### Single callback api + +The resemble.compare API provides a convenience function that is used as follows: + +``` js +const compare = require('resemblejs').compare; + +function getDiff(){ + +const options = { + output: { + errorColor: { + red: 255, + green: 0, + blue: 255 + }, + errorType: 'movement', + transparency: 0.3, + largeImageThreshold: 1200, + useCrossOrigin: false, + outputDiff: true + }, + scaleToSameSize: true, + ignore: ['nothing', 'less', 'antialiasing', 'colors', 'alpha'], +}; +// The parameters can be Node Buffers +// data is the same as usual with an additional getBuffer() function +compareImages(image1, image2, options, function (err, data) { + if (err) { + console.log('An error!') + } else { + console.log(data); + /* + { + misMatchPercentage : 100, // % + isSameDimensions: true, // or false + dimensionDifference: { width: 0, height: -1 }, // defined if dimensions are not the same + getImageDataUrl: function(){} + } + */ + + } +); + ### Node.js #### Installation @@ -117,7 +161,7 @@ npm install canvas #### Usage -The API under Node is the same as on the browser with one addition, a promise based `compareImage` convenience function that is used as follows: +The API under Node is the same as on the `resemble.compare` but promise based: ``` js const compareImages = require('resemblejs/compareImages'); diff --git a/compareImages.js b/compareImages.js index 1884317..f3ee19c 100644 --- a/compareImages.js +++ b/compareImages.js @@ -1,40 +1,10 @@ var resemble = require('./resemble'); -function applyIgnore(api, ignore) { - switch (ignore) { - case 'nothing': api.ignoreNothing(); - case 'less': api.ignoreLess(); - case 'antialiasing': api.ignoreAntialiasing(); - case 'colors': api.ignoreColors(); - case 'alpha': api.ignoreAlpha(); - default: throw new Error('Invalid ignore: ' + ignore); - } -} - module.exports = function(image1, image2, options) { - return new Promise(function(resolve, reject) { - var res = resemble(image1), opt = options || {}, compare; - if (opt.output) { - res.outputSettings(opt.output); - } - - compare = res.compareTo(image2); - - if (opt.scaleToSameSize) { - compare.scaleToSameSize(); - } - - if (typeof opt.ignore === 'string') { - applyIgnore(compare, opt.ignore); - } else if (opt.ignore && opt.ignore.forEach) { - opt.ignore.forEach(function (v) { - applyIgnore(compare, v); - }); - } - - compare.onComplete(function(data) { - if (data.error) { - reject(data.error); + return new Promise(function(resolve, reject)) { + resemble.compare(image1, image2, options, function(err, data) { + if (err) { + reject(err); } else { resolve(data); } diff --git a/resemble.js b/resemble.js index d079504..cbbe42a 100644 --- a/resemble.js +++ b/resemble.js @@ -784,5 +784,50 @@ URL: https://github.com/Huddle/Resemble.js }; + function applyIgnore(api, ignore) { + switch (ignore) { + case 'nothing': api.ignoreNothing(); + case 'less': api.ignoreLess(); + case 'antialiasing': api.ignoreAntialiasing(); + case 'colors': api.ignoreColors(); + case 'alpha': api.ignoreAlpha(); + default: throw new Error('Invalid ignore: ' + ignore); + } + } + + resemble.compare = function (image1, image2, options, callback) { + if (typeof options === 'function') { + callback = options; + options = undefined; + } + var res = resemble(image1), opt = options || {}, compare; + if (opt.output) { + res.outputSettings(opt.output); + } + + compare = res.compareTo(image2); + + if (opt.scaleToSameSize) { + compare.scaleToSameSize(); + } + + if (typeof opt.ignore === 'string') { + applyIgnore(compare, opt.ignore); + } else if (opt.ignore && opt.ignore.forEach) { + opt.ignore.forEach(function (v) { + applyIgnore(compare, v); + }); + } + + compare.onComplete(function(data) { + if (data.error) { + callback(data.error); + } else { + callback(null, data); + } + }); + }); + return resemble; +}; })); From a8ca507dd76e344d737ee04020f4d563f404df79 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 13:46:58 +0000 Subject: [PATCH 11/35] fix syntax errors --- resemble.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resemble.js b/resemble.js index cbbe42a..ad89f74 100644 --- a/resemble.js +++ b/resemble.js @@ -4,6 +4,7 @@ URL: https://github.com/Huddle/Resemble.js */ (function (root, factory) { + 'use strict'; if (typeof define === 'function' && define.amd) { define([], factory); } else if (typeof module === 'object' && module.exports) { @@ -826,8 +827,7 @@ URL: https://github.com/Huddle/Resemble.js callback(null, data); } }); - }); + }; return resemble; -}; })); From cbc56b1fc630bb0877d4a836b46fd5b74682d3d9 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 14:18:09 +0000 Subject: [PATCH 12/35] move outputSettings into compareApi and rootApi --- resemble.js | 82 +++++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/resemble.js b/resemble.js index ad89f74..16b6447 100644 --- a/resemble.js +++ b/resemble.js @@ -620,6 +620,41 @@ URL: https://github.com/Huddle/Resemble.js loadImageData(two, onceWeHaveBoth); } + function outputSettings(options){ + var key; + var undefined; + + if(options.errorColor){ + for (key in options.errorColor) { + errorPixelColor[key] = options.errorColor[key] === undefined ? errorPixelColor[key] : options.errorColor[key]; + } + } + + if(options.errorType && errorPixelTransform[options.errorType] ){ + errorPixel = errorPixelTransform[options.errorType]; + errorType = options.errorType; + } + + if(options.errorPixel && typeof options.errorPixel === "function") { + errorPixel = options.errorPixel; + } + + pixelTransparency = isNaN(Number(options.transparency)) ? pixelTransparency : options.transparency; + + if (options.largeImageThreshold !== undefined) { + largeImageThreshold = options.largeImageThreshold; + } + + if (options.useCrossOrigin !== undefined) { + useCrossOrigin = options.useCrossOrigin; + } + + if (options.boundingBox !== undefined) { + boundingBox = options.boundingBox; + } + + } + function getCompareApi(param){ var secondFileData, @@ -719,6 +754,10 @@ URL: https://github.com/Huddle/Resemble.js if(hasMethod) { param(); } return self; }, + outputSettings: function(options) { + outputSettings(options); + return self; + }, onComplete: function( callback ){ updateCallbackArray.push(callback); @@ -736,7 +775,7 @@ URL: https://github.com/Huddle/Resemble.js return self; } - return { + var rootSelf = { onComplete: function( callback ){ updateCallbackArray.push(callback); loadImageData(fileData, function(imageData, width, height){ @@ -745,44 +784,13 @@ URL: https://github.com/Huddle/Resemble.js }, compareTo: function(secondFileData){ return getCompareApi(secondFileData); - }, - outputSettings: function(options){ - var key; - var undefined; - - if(options.errorColor){ - for (key in options.errorColor) { - errorPixelColor[key] = options.errorColor[key] === undefined ? errorPixelColor[key] : options.errorColor[key]; - } - } - - if(options.errorType && errorPixelTransform[options.errorType] ){ - errorPixel = errorPixelTransform[options.errorType]; - errorType = options.errorType; - } - - if(options.errorPixel && typeof options.errorPixel === "function") { - errorPixel = options.errorPixel; - } - - pixelTransparency = isNaN(Number(options.transparency)) ? pixelTransparency : options.transparency; - - if (options.largeImageThreshold !== undefined) { - largeImageThreshold = options.largeImageThreshold; - } - - if (options.useCrossOrigin !== undefined) { - useCrossOrigin = options.useCrossOrigin; - } - - if (options.boundingBox !== undefined) { - boundingBox = options.boundingBox; - } - - return this; + } + outputSettings: function(options) { + outputSettings(options); + return rootSelf; } }; - + return rootSelf; }; function applyIgnore(api, ignore) { From 678f04ffc6704e8163ae555014e9b5f34fef18ec Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 14:18:30 +0000 Subject: [PATCH 13/35] call new outputSettings method --- demoassets/main.js | 50 +++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/demoassets/main.js b/demoassets/main.js index bbf23b6..7f73910 100644 --- a/demoassets/main.js +++ b/demoassets/main.js @@ -134,86 +134,76 @@ $(function(){ } else if($this.is('#pink')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorColor: { red: 255, green: 0, blue: 255 } - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#yellow')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorColor: { red: 255, green: 255, blue: 0 } - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#flat')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorType: 'flat' - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#movement')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorType: 'movement' - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#flatDifferenceIntensity')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorType: 'flatDifferenceIntensity' - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#movementDifferenceIntensity')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorType: 'movementDifferenceIntensity' - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#diffOnly')){ - resemble.outputSettings({ + resembleControl.outputSettings({ errorType: 'diffOnly' - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#opaque')){ - resemble.outputSettings({ + resembleControl.outputSettings({ transparency: 1 - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#transparent')){ - resemble.outputSettings({ + resembleControl.outputSettings({ transparency: 0.3 - }); - resembleControl.repaint(); + }).repaint(); } else if($this.is('#boundingBox')){ - resemble.outputSettings({ + resembleControl.outputSettings({ boundingBox: { left: $("#x1").val(), top: $("#y1").val(), right: $("#x2").val(), bottom: $("#y2").val() } - }); - resembleControl.repaint(); + }).repaint(); $this.removeClass('active'); } }); From 10550ce88dcfbef6ce13888367eeca84df7e4d55 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 14:20:32 +0000 Subject: [PATCH 14/35] fix README syntax errors --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 44ff97d..89da8c0 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ const options = { }; // The parameters can be Node Buffers // data is the same as usual with an additional getBuffer() function -compareImages(image1, image2, options, function (err, data) { +compare(image1, image2, options, function (err, data) { if (err) { console.log('An error!') } else { @@ -141,7 +141,8 @@ compareImages(image1, image2, options, function (err, data) { */ } -); +}); +``` ### Node.js From e5424ce1e5ced98aca7dc3c17ecde9479ff8784d Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 15:15:22 +0000 Subject: [PATCH 15/35] restore global settings function --- resemble.js | 85 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/resemble.js b/resemble.js index 16b6447..3cc4c94 100644 --- a/resemble.js +++ b/resemble.js @@ -23,6 +23,17 @@ URL: https://github.com/Huddle/Resemble.js } }; + var oldOutputSettings = {}; + var globalOutputSettings = oldOutputSettings; + + function setGlobalOutputSettings(settings) { + var msg = 'warning resemble.outputSettings mutates global state, and ' + + 'will be removed in 3.0.0'; + console.error(msg); + globalOutputSettings = settings; + return this + } + var resemble = function( fileData ){ var pixelTransparency = 1; @@ -586,40 +597,6 @@ URL: https://github.com/Huddle/Resemble.js return img; } - function compare(one, two){ - - function onceWeHaveBoth(){ - var width; - var height; - if(images.length === 2){ - if( images[0].error || images[1].error ){ - data = {}; - data.error = images[0].error ? images[0].error : images[1].error; - triggerDataUpdate(); - return; - } - width = images[0].width > images[1].width ? images[0].width : images[1].width; - height = images[0].height > images[1].height ? images[0].height : images[1].height; - - if( (images[0].width === images[1].width) && (images[0].height === images[1].height) ){ - data.isSameDimensions = true; - } else { - data.isSameDimensions = false; - } - - data.dimensionDifference = { width: images[0].width - images[1].width, height: images[0].height - images[1].height }; - - analyseImages( normalise(images[0],width, height), normalise(images[1],width, height), width, height); - - triggerDataUpdate(); - } - } - - images = []; - loadImageData(one, onceWeHaveBoth); - loadImageData(two, onceWeHaveBoth); - } - function outputSettings(options){ var key; var undefined; @@ -655,6 +632,43 @@ URL: https://github.com/Huddle/Resemble.js } + function compare(one, two){ + if (globalOutputSettings !== oldGlobalSettings) { + outputSettings(options); + } + + function onceWeHaveBoth(){ + var width; + var height; + if(images.length === 2){ + if( images[0].error || images[1].error ){ + data = {}; + data.error = images[0].error ? images[0].error : images[1].error; + triggerDataUpdate(); + return; + } + width = images[0].width > images[1].width ? images[0].width : images[1].width; + height = images[0].height > images[1].height ? images[0].height : images[1].height; + + if( (images[0].width === images[1].width) && (images[0].height === images[1].height) ){ + data.isSameDimensions = true; + } else { + data.isSameDimensions = false; + } + + data.dimensionDifference = { width: images[0].width - images[1].width, height: images[0].height - images[1].height }; + + analyseImages( normalise(images[0],width, height), normalise(images[1],width, height), width, height); + + triggerDataUpdate(); + } + } + + images = []; + loadImageData(one, onceWeHaveBoth); + loadImageData(two, onceWeHaveBoth); + } + function getCompareApi(param){ var secondFileData, @@ -784,7 +798,7 @@ URL: https://github.com/Huddle/Resemble.js }, compareTo: function(secondFileData){ return getCompareApi(secondFileData); - } + }, outputSettings: function(options) { outputSettings(options); return rootSelf; @@ -837,5 +851,6 @@ URL: https://github.com/Huddle/Resemble.js }); }; + resemble.outputSettings = setGlobalOutputSettings; return resemble; })); From e13b20b77376d035587dd143da696a5dac9d2a2f Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Wed, 6 Dec 2017 15:38:26 +0000 Subject: [PATCH 16/35] fix syntax error --- compareImages.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compareImages.js b/compareImages.js index f3ee19c..508fc36 100644 --- a/compareImages.js +++ b/compareImages.js @@ -1,7 +1,7 @@ var resemble = require('./resemble'); module.exports = function(image1, image2, options) { - return new Promise(function(resolve, reject)) { + return new Promise(function(resolve, reject) { resemble.compare(image1, image2, options, function(err, data) { if (err) { reject(err); From 0cb7a4b8bc52a2fef186cae7ebdff477b1523473 Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Fri, 15 Dec 2017 10:48:03 -0500 Subject: [PATCH 17/35] Display the load error, if available --- nodejs-tests/compareImages.test.js | 2 +- nodejs-tests/resemble.test.js | 2 +- resemble.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nodejs-tests/compareImages.test.js b/nodejs-tests/compareImages.test.js index 9f64f89..263330d 100644 --- a/nodejs-tests/compareImages.test.js +++ b/nodejs-tests/compareImages.test.js @@ -34,6 +34,6 @@ describe('compareImages', () => { fs.readFileSync('./demoassets/People.jpg'), 'bogus data' ); - await expect(promise).rejects.toMatch('Image load error.'); + await expect(promise).rejects.toMatch('Error: error while reading from input stream'); }); }); diff --git a/nodejs-tests/resemble.test.js b/nodejs-tests/resemble.test.js index dd89049..6d47ded 100644 --- a/nodejs-tests/resemble.test.js +++ b/nodejs-tests/resemble.test.js @@ -64,7 +64,7 @@ describe('resemble', () => { .onComplete(function(data) { // console.info('Reached oncomplete for request_404'); // console.log(data); - expect(data.error).toEqual('Image load error.'); + expect(data.error).toEqual('Error: error while reading from input stream'); resolve(); }); }); diff --git a/resemble.js b/resemble.js index c7889f0..321a94e 100644 --- a/resemble.js +++ b/resemble.js @@ -190,9 +190,9 @@ URL: https://github.com/Huddle/Resemble.js hiddenImage.setAttribute('crossorigin', 'anonymous'); } - hiddenImage.onerror = function () { + hiddenImage.onerror = function (err) { hiddenImage.onerror = null; //fixes pollution between calls - images.push({ error : "Image load error."}); + images.push({ error : err ? err + "" : "Image load error" }); callback(); }; From 906ba229c4d137bc50fb3434f3677fed2ebee10d Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Fri, 15 Dec 2017 10:51:05 -0500 Subject: [PATCH 18/35] Add back "." --- resemble.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resemble.js b/resemble.js index 321a94e..9d3b854 100644 --- a/resemble.js +++ b/resemble.js @@ -192,7 +192,7 @@ URL: https://github.com/Huddle/Resemble.js hiddenImage.onerror = function (err) { hiddenImage.onerror = null; //fixes pollution between calls - images.push({ error : err ? err + "" : "Image load error" }); + images.push({ error : err ? err + "" : "Image load error." }); callback(); }; From 8032326137bf6059ce789e179e0a7394dd7ded34 Mon Sep 17 00:00:00 2001 From: bouzuya Date: Wed, 27 Dec 2017 11:55:45 +0900 Subject: [PATCH 19/35] copyPixel() ignores the fourth argument --- resemble.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resemble.js b/resemble.js index c7889f0..a20ffb4 100644 --- a/resemble.js +++ b/resemble.js @@ -486,7 +486,7 @@ URL: https://github.com/Huddle/Resemble.js } if( isRGBSimilar(pixel1, pixel2) || !isWithinBoundingBox ){ - copyPixel(targetPix, offset, pixel1, pixel2); + copyPixel(targetPix, offset, pixel1); } else if( ignoreAntialiasing && ( addBrightnessInfo(pixel1), // jit pixel info augmentation looks a little weird, sorry. From 901ac9767e575e7ebf855ef0c4d9f2cbb7a0127d Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 17 Jan 2018 17:47:31 +0000 Subject: [PATCH 20/35] a few tweaks --- README.md | 4 ++-- resemble.js | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 89da8c0..6972c42 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ diff.ignoreAntialiasing(); And change the output display style: ```javascript -resembleControl.outputSettings({ +resemble.outputSettings({ errorColor: { red: 255, green: 0, @@ -82,7 +82,7 @@ resembleControl.outputSettings({ It is possible to narrow down the area of comparison, by specifying a bounding box measured in pixels from the top left: ```javascript -resembleControl.outputSettings({ +resemble.outputSettings({ boundingBox: { left: 100, top: 200, diff --git a/resemble.js b/resemble.js index 3cc4c94..44d359c 100644 --- a/resemble.js +++ b/resemble.js @@ -23,13 +23,13 @@ URL: https://github.com/Huddle/Resemble.js } }; - var oldOutputSettings = {}; - var globalOutputSettings = oldOutputSettings; + var oldGlobalSettings = {}; + var globalOutputSettings = oldGlobalSettings; function setGlobalOutputSettings(settings) { var msg = 'warning resemble.outputSettings mutates global state, and ' + 'will be removed in 3.0.0'; - console.error(msg); + console.warn(msg); globalOutputSettings = settings; return this } @@ -62,7 +62,7 @@ URL: https://github.com/Huddle/Resemble.js } var errorPixelTransform = { - flat: function (px, offset, d1, d2) { + flat: function (px, offset) { px[offset] = errorPixelColor.red; px[offset + 1] = errorPixelColor.green; px[offset + 2] = errorPixelColor.blue; @@ -196,7 +196,6 @@ URL: https://github.com/Huddle/Resemble.js hiddenImage.setAttribute = function setAttribute() { }; } - if(useCrossOrigin) { hiddenImage.setAttribute('crossorigin', 'anonymous'); } @@ -406,7 +405,7 @@ URL: https://github.com/Huddle/Resemble.js px[offset + 3] = data.a * pixelTransparency; //a } - function getPixelInfo(dst, data, offset, cacheSet) { + function getPixelInfo(dst, data, offset) { if (data.length > offset) { dst.r = data[offset]; dst.g = data[offset + 1]; @@ -768,10 +767,10 @@ URL: https://github.com/Huddle/Resemble.js if(hasMethod) { param(); } return self; }, - outputSettings: function(options) { - outputSettings(options); - return self; - }, + outputSettings: function(options) { + outputSettings(options); + return self; + }, onComplete: function( callback ){ updateCallbackArray.push(callback); @@ -823,7 +822,9 @@ URL: https://github.com/Huddle/Resemble.js callback = options; options = undefined; } + var res = resemble(image1), opt = options || {}, compare; + if (opt.output) { res.outputSettings(opt.output); } From 89fbef6862f18e07a8ef76df83c8cbccba8604c6 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 17 Jan 2018 17:48:22 +0000 Subject: [PATCH 21/35] 2.6.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f34fd15..5209d45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.5.1", + "version": "2.6.0", "lockfileVersion": 1, "dependencies": { "abab": { diff --git a/package.json b/package.json index ea6e47a..c7df163 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.5.1", + "version": "2.6.0", "description": "Image analysis and comparison with HTML5", "main": "resemble.js", "repository": { From 90cc720570d3809d03b02780b8b963632b7b300d Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Wed, 17 Jan 2018 17:52:51 +0000 Subject: [PATCH 22/35] bower 2.6.0 --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 20cae59..1ee4a47 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "resemblejs", "main": "resemble.js", - "version": "2.5.0", + "version": "2.6.0", "homepage": "https://github.com/Huddle/Resemble.js", "authors": [ "James Cryer " From 9790f2f62b4410b53c7caa20eb06c77797a62def Mon Sep 17 00:00:00 2001 From: Christopher Brown Date: Mon, 22 Jan 2018 00:22:02 -0700 Subject: [PATCH 23/35] Add break statements to switch Adding break statements to the case switch statements prevents throwing of errors when using the **ignore** option --- resemble.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/resemble.js b/resemble.js index b265e66..7ba0b0d 100644 --- a/resemble.js +++ b/resemble.js @@ -808,12 +808,24 @@ URL: https://github.com/Huddle/Resemble.js function applyIgnore(api, ignore) { switch (ignore) { - case 'nothing': api.ignoreNothing(); - case 'less': api.ignoreLess(); - case 'antialiasing': api.ignoreAntialiasing(); - case 'colors': api.ignoreColors(); - case 'alpha': api.ignoreAlpha(); - default: throw new Error('Invalid ignore: ' + ignore); + case 'nothing': + api.ignoreNothing(); + break; + case 'less': + api.ignoreLess(); + break; + case 'antialiasing': + api.ignoreAntialiasing(); + break; + case 'colors': + api.ignoreColors(); + break; + case 'alpha': + api.ignoreAlpha(); + break; + default: + throw new Error('Invalid ignore: ' + ignore); + break; } } From f9c86db193f98e8a6432aa0368219787c543cc92 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Tue, 30 Jan 2018 15:16:28 +0000 Subject: [PATCH 24/35] Added PNG buffer test and fixed dockerfile --- .dockerignore | 5 ++--- demoassets/ghost1.png | Bin 0 -> 8195 bytes demoassets/ghost2.png | Bin 0 -> 8210 bytes nodejs-tests/resemble.test.js | 26 +++++++++++++++++++++++++- 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 demoassets/ghost1.png create mode 100644 demoassets/ghost2.png diff --git a/.dockerignore b/.dockerignore index afa9cbd..fe33129 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,7 @@ .idea -node_modules -demoassets +**/node_modules npm-debug.log -libs +**/libs index.html bower.json README.md \ No newline at end of file diff --git a/demoassets/ghost1.png b/demoassets/ghost1.png new file mode 100644 index 0000000000000000000000000000000000000000..2524ff9ad39f6a0bab7f767be4e4cbc45dfa3096 GIT binary patch literal 8195 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 IS@X~T2SS;NCjbBd literal 0 HcmV?d00001 diff --git a/demoassets/ghost2.png b/demoassets/ghost2.png new file mode 100644 index 0000000000000000000000000000000000000000..8ddf5857012522959cfb242f3d0c10b688baef45 GIT binary patch literal 8210 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 Hu?YPikN1d* literal 0 HcmV?d00001 diff --git a/nodejs-tests/resemble.test.js b/nodejs-tests/resemble.test.js index 6d47ded..a50a92d 100644 --- a/nodejs-tests/resemble.test.js +++ b/nodejs-tests/resemble.test.js @@ -70,7 +70,7 @@ describe('resemble', () => { }); }); - test('node buffers', () => { + test('node buffers jpg', () => { const people = fs.readFileSync('./demoassets/People.jpg'); const people2 = fs.readFileSync('./demoassets/People2.jpg'); @@ -89,4 +89,28 @@ describe('resemble', () => { }); }); }); + + + test('node buffers png', () => { + const people = fs.readFileSync('./demoassets/ghost1.png'); + const people2 = fs.readFileSync('./demoassets/ghost2.png'); + + return new Promise(function(resolve, reject) { + resemble(people).compareTo(people2).onComplete(function(data) { + // console.info('Reached oncomplete for base64_string'); + expect(data.diffBounds.bottom).toEqual(138); + expect(data.diffBounds.left).toEqual(90); + expect(data.diffBounds.right).toEqual(157); + expect(data.diffBounds.top).toEqual(107); + expect(data.dimensionDifference.height).toEqual(0); + expect(data.dimensionDifference.width).toEqual(0); + expect(data.isSameDimensions).toBe(true); + expect(data.misMatchPercentage).toEqual('0.27'); + resolve(); + }); + }); + }); + + + }); From d25edeafe134343bb1454adaad55dba53c49ebfc Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Tue, 30 Jan 2018 15:53:16 +0000 Subject: [PATCH 25/35] canvas-prebuilt should be a dependency not a dev-dependency --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c7df163..ecb6d88 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,13 @@ "test": "jest nodejs-tests", "test-watch": "jest --watch nodejs-tests" }, + "dependencies": { + "canvas-prebuilt": "^1.6.5-prerelease.1" + }, "devDependencies": { "chai": "^3.4.1", "jest": "^20.0.4", "jest-cli": "^20.0.4", - "canvas-prebuilt": "^1.6.5-prerelease.1", "color-convert": "^1.9.0" }, "jest": { From ad94f3353fd15f673aed53e173fd82b25ff0ce21 Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Tue, 30 Jan 2018 16:03:45 +0000 Subject: [PATCH 26/35] 2.7.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5209d45..ef194c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.6.0", + "version": "2.7.0", "lockfileVersion": 1, "dependencies": { "abab": { diff --git a/package.json b/package.json index ecb6d88..2ac2955 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "resemblejs", - "version": "2.6.0", + "version": "2.7.0", "description": "Image analysis and comparison with HTML5", "main": "resemble.js", "repository": { From b46e0571d4546653583cf7d7d8409902120e2afb Mon Sep 17 00:00:00 2001 From: "james.cryer" Date: Tue, 30 Jan 2018 16:24:25 +0000 Subject: [PATCH 27/35] remove obsolete bower version --- bower.json | 1 - 1 file changed, 1 deletion(-) diff --git a/bower.json b/bower.json index 1ee4a47..f273061 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,6 @@ { "name": "resemblejs", "main": "resemble.js", - "version": "2.6.0", "homepage": "https://github.com/Huddle/Resemble.js", "authors": [ "James Cryer " From 72bd43648775b005d67be433dbeaaa5684e917e1 Mon Sep 17 00:00:00 2001 From: Kamil Bielawski Date: Wed, 31 Jan 2018 21:58:40 +0100 Subject: [PATCH 28/35] Add support for ignoring rectangle --- README.md | 14 ++++++++++++++ demoassets/main.js | 19 +++++++++++++++---- index.html | 37 +++++++++++++++++++++++++++++++++---- resemble.js | 39 +++++++++++++++++++++++++++------------ 4 files changed, 89 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 6972c42..85c0b09 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,20 @@ resemble.outputSettings({ // .repaint(); ``` +You can also exclude part of the image from comparison, by specifying the excluded area in pixels from the top left: + +```javascript +resemble.outputSettings({ + ignoredBox: { + left: 100, + top: 200, + right: 200, + bottom: 600 + } +}) +// .repaint(); +``` + By default, the comparison algorithm skips pixels when the image width or height is larger than 1200 pixels. This is there to mitigate performance issues. You can modify this behaviour by setting the `largeImageThreshold` option to a different value. Set it to **0** to switch it off completely. diff --git a/demoassets/main.js b/demoassets/main.js index 7f73910..9ed4a1f 100644 --- a/demoassets/main.js +++ b/demoassets/main.js @@ -198,10 +198,21 @@ $(function(){ if($this.is('#boundingBox')){ resembleControl.outputSettings({ boundingBox: { - left: $("#x1").val(), - top: $("#y1").val(), - right: $("#x2").val(), - bottom: $("#y2").val() + left: $("#bounding-box-x1").val(), + top: $("#bounding-box-y1").val(), + right: $("#bounding-box-x2").val(), + bottom: $("#bounding-box-y2").val() + } + }).repaint(); + $this.removeClass('active'); + } + if($this.is('#ignoredBox')){ + resembleControl.outputSettings({ + ignoredBox: { + left: $("#ignored-box-x1").val(), + top: $("#ignored-box-y1").val(), + right: $("#ignored-box-x2").val(), + bottom: $("#ignored-box-y2").val() } }).repaint(); $this.removeClass('active'); diff --git a/index.html b/index.html index e1ba636..86c43fe 100644 --- a/index.html +++ b/index.html @@ -142,19 +142,19 @@
- +
- +
- +
- +
@@ -162,6 +162,35 @@
+ +
+
+ + +